2010-04-13 49 views
7

Bây giờ monotouch bị cấm, tôi đã tự hỏi liệu có cách nào để dịch C# (hoặc một số ngôn ngữ khác) thành Mục tiêu-C không? Tôi sẽ không nhớ sử dụng API của Apple miễn là tôi không phải khai báo các biến của tôi trong 3-4 giai đoạn (ivar-property-synthesize-dealloc). Tất cả những gì tôi muốn là một ngôn ngữ ít lời nói, tập trung vào ý định của tôi chứ không phải về cú pháp biên dịch.Biên dịch C# thành mục tiêu-C

+1

Apple đã cấm các chương trình không phải ObjC để tắt Flash. MonoTouch là thiệt hại tài sản thế chấp; bên cạnh đó, những người ở Novell cho biết họ sẽ làm việc với Apple để xem liệu họ có thể vẫn hợp pháp hay không. – zneak

+2

Tôi đồng ý. MonoTouch là một wrapper 100% mặt đất xung quanh CocoaTouch với mục đích duy nhất là làm cho Cocoa hút ít hơn. Nó cho thấy tất cả các SDK CocoaTouch sử dụng ngôn ngữ của nó, do đó, các ứng dụng được tạo ra bằng cách sử dụng nó sẽ trông và cảm thấy giống như bản địa như những gì được viết bằng ObjC. Nó không trừu tượng ba khung công tác cực kỳ khác nhau như QT (Cocoa, Win32, KDE/GNOME/bất cứ điều gì). Thật không may là nó có thể biến mất. –

+0

Nếu bạn đang xây dựng cho thiết bị iPhone, bạn không thực sự cần phải tạo một ivar cho một tài sản. Thời gian chạy sẽ tạo ra một ivar cho bạn. Nếu bạn đang xây dựng cho trình mô phỏng, bạn sẽ phải tạo ra một chiếc ngà. Sucks. Xin vui lòng nộp một vé và làm cho giả lập hút ít hơn! – Giao

Trả lời

7

Bạn nên tạm dừng để xem điều gì thực sự xảy ra thay vì giả sử Monotouch bị cấm.

Hoặc tìm hiểu Mục tiêu-C. Dù sao thì tốt cho việc học một ngôn ngữ mới. Và các khuôn khổ sẽ có ý nghĩa hơn với bạn.

5

Bạn luôn có thể xác định ngôn ngữ meta của riêng mình cho các đối tượng, viết ý nghĩa của bạn, phân tích cú pháp tệp đó và dán mã mới được sản xuất vào XCode.

Và nếu bạn đang thực sự chết với ObjC và XCode, Apple đã cho bạn tối hậu thư của bạn: sử dụng nó hoặc để lại.

+1

Thật không may, tôi nghĩ rằng đây là câu trả lời đúng, Apple đã vẽ đường trong cát. –

+0

vâng, tôi phải sử dụng nó. Tôi biết, đó là kinh doanh, không có gì cá nhân. dữ liệu meta và dán là một cách tiếp cận hacky, tôi đã suy nghĩ về viết trong C#, sau đó trình biên dịch chuyển nó sang một số ngôn ngữ "trung gian" (C hoặc ObjC) và sau đó hãy xcode biên dịch nó trong nền ... –

+0

Đó chính xác là những gì tôi đang kê toa (nếu bạn từ chối quay tay Objective-C). Viết một trình biên dịch nhỏ để chuyển đổi từ định dạng bạn chọn thành Objective-C. Sau đó, chỉ cần sao chép/dán nó vào XCode - Tôi không thấy làm thế nào đó là ít hacky sau đó những gì bạn đề nghị. –

4

Nếu nó chỉ ra cách mọi người đang đề xuất nó sẽ bật ra, thì câu trả lời cho câu hỏi của bạn không thực sự giải quyết vấn đề của bạn.

Thỏa thuận SDK đề cập cụ thể đến 'độc đáo' của Mục tiêu-C (và các ngôn ngữ khác). Dịch từ C# sang Objective-C vi phạm yêu cầu này rằng các ứng dụng ban đầu được viết trong Objective-C.

Thứ hai, Monotouch đã hỗ trợ biên dịch AOT đầy đủ.

2

Dịch sẽ chống lại chính sách Apples vì ​​mã của bạn phải được mã hóa ban đầu bằng C, Obj -C, C++.

Đến từ Java học tập ban đầu của nó thực sự không phải là khó. Việc khai báo các biến ở nhiều nơi thực sự là phản đối chính của bạn? Dễ thực hiện và cho phép bạn kiểm soát chặt chẽ chương trình của mình. Nó cũng bị nghi ngờ rằng hệ điều hành iPhone 4 cần mã nguồn gốc để có thể đa nhiệm đúng cách. Nó có ý nghĩa cũng như nếu không họ sẽ sửa đổi thỏa thuận cấp phép hiện tại nếu họ muốn ngăn chặn Adobe.

+0

monotouch tạo ra "mã gốc" và có thể là tác vụ đa "thân thiện", chỉ cần tuân thủ các quy tắc. Tôi đã thực hiện ObjectiveC và có 7-8 ứng dụng trong appstore, tôi đã viết lại tất cả chúng trong C# (thành thật trên xe buýt đến văn phòng và trở về nhà), vì vậy C# dễ dàng hơn cho tôi. những gì không có ý nghĩa với tôi là cách tiếp cận của Apple theo cách của tôi hoặc đường cao tốc. nếu họ có một bộ quy tắc mà ứng dụng của bạn cần tuân thủ để có thể chấp nhận được, điều đó là tốt, nhưng với ngôn ngữ tôi viết ứng dụng của tôi hơi quá nhiều. một lần nữa, tôi hiểu, đó là nền tảng của họ và họ có thể làm những gì họ hài lòng. –

+0

Nếu monotouch làm tất cả mọi thứ một cách hoàn toàn chính xác những gì Apple sẽ biết ngôn ngữ bạn sử dụng, bạn không gửi mã nguồn của bạn cho họ (trừ khi điều này đã thay đổi). Lý do duy nhất họ biết là nếu hệ điều hành không thể kiểm soát nó đúng cách và đang tạo ra lỗi, trong trường hợp đó Monotouch aint biên dịch nó đúng cách và điều này sẽ ảnh hưởng đến người dùng. Và nếu bạn lo lắng về việc phá vỡ thỏa thuận bằng cách sử dụng monotouch bạn sẽ làm điều đó bằng cách cố gắng dịch sang Obj-C để không phải là vấn đề. – Rudiger

+0

@Rudiger: monotouch làm mọi thứ hoàn toàn chính xác, nhị phân nó tạo ra tuy nhiên có một số "dấu" và "chữ ký" mà làm cho nó rõ ràng với Apple rằng nhị phân được biên dịch với monotouch. có rất nhiều ứng dụng trên appstore được viết bằng mục tiêu c rất tuyệt và có rất nhiều ứng dụng crap. nhiều người trong số họ sụp đổ, nhiều người không. nhiều bộ nhớ bị rò rỉ, nhiều người không. những gì làm cho một ứng dụng tuyệt vời không phải là công cụ, là nhà phát triển. bằng cách cấm một số công cụ không ai đạt được chất lượng tốt hơn. –

Các vấn đề liên quan