2010-04-13 2 views
7

Теперь, когда monotouch запрещен, мне было интересно, есть ли способ перевести C# (или какой-либо другой язык) в Objective-C? Я не буду возражать против использования API Apple, пока мне не нужно объявлять свои переменные на 3-4 этапа (ivar-property-synthesize-dealloc). Все, что я хочу, - это менее словесный язык, чтобы сосредоточиться на моем намерении, а не на синтаксисе компилятора.Скомпилировать C# в объектив-C

+1

Apple запретила не-ObjC программы, чтобы убить Flash. MonoTouch - побочный ущерб; кроме того, ребята из Novell заявили, что они будут работать с Apple, чтобы узнать, могут ли они оставаться законными. – zneak

+2

Согласен. MonoTouch - это 100% обломок с обложками вокруг CocoaTouch, единственной целью которого является сокращение количества какао. Он предоставляет весь SDK CocoaTouch, используя свой язык, поэтому созданные им приложения будут выглядеть и чувствовать себя так же естественно, как и те, что написаны в ObjC. Он не абстрагирует три совершенно разные рамки, такие как QT (Cocoa, Win32, KDE/GNOME/безотносительно). Очень жаль, что он может уйти. –

+0

Если вы строите устройство для iPhone, вам фактически не нужно создавать ivar для свойства. Время выполнения создаст для вас ivar. Если вы строите симулятор, вам нужно будет создать ивара. Отстой. Пожалуйста, напишите билет и уменьшите симулятор! – Giao

ответ

7

Вы должны сделать паузу, чтобы увидеть, что на самом деле происходит, вместо того, чтобы предполагать, что Monotouch запрещен.

Или, узнайте Objective-C. Это хорошо для ума, чтобы выучить новый язык в любом случае. И рамки будут иметь для вас больше смысла.

5

Вы всегда можете определить свой собственный метаязык для объектов, написать свое намеренное значение, проанализировать этот файл и вставить вновь созданный код в XCode.

И если вы действительно мертвы против ObjC и XCode, Apple предоставила вам свой ультиматум: используйте его или уйдите.

+1

К сожалению, я думаю, что это правильный ответ, Apple нарисовала линию на песке. –

+0

Да, я должен использовать его. Я знаю, это бизнес, ничего личного. Я просто хочу узнать, могу ли я свести к минимуму мои страдания;) метаданные и вставка - это взломанный подход, я думал о написании на C#, а затем компилятор преобразовал его на некоторый «промежуточный» язык (C или ObjC), а затем пусть xcode скомпилирует его в фоновом режиме ... –

+0

Это именно то, что я предписываю (если вы отказываетесь от ручного воспроизведения Objective-C). Напишите небольшой компилятор для преобразования из вашего формата в Objective-C. Затем просто скопируйте/вставьте это в XCode - я не вижу, как это менее хаки, чем то, что вы рекомендуете. –

4

Если выясняется, что люди говорят, что это получится, тогда ответ на ваш вопрос на самом деле не решит вашу проблему.

В соглашении SDK упоминается «оригинальность» объекта Objective-C (и других языков). Перевод с C# на Objective-C нарушает это требование, чтобы приложения были первоначально написаны в Objective-C.

Во-вторых, Monotouch уже поддерживает полную сборку AOT.

2

Перевод будет противоречить политике Apple, потому что ваш код должен быть первоначально закодирован в C, Obj -C, C++.

Исходя из первоначально изучения Java, это действительно не так сложно. Является ли объявление переменных в нескольких местах действительно вашим основным возражением? Его легко сделать и дает вам жесткий контроль над вашей программой. Также подозревается, что iPhone OS 4 нуждается в собственном коде, чтобы иметь возможность выполнять многозадачность. Это также имеет смысл, иначе они бы изменили действующее лицензионное соглашение, если они хотели остановить Adobe.

+0

monotouch производит «собственный код» и может быть многозадачной «дружественной», просто нужно следовать правилам. Я сделал ObjectiveC и имею 7-8 приложений в appstore, я переписал их все на C# (честно говоря, на автобусе добираюсь до офиса и возвращаюсь домой), поэтому C# намного проще для меня. что для меня не имеет смысла, это подход Apple к моему пути или шоссе. если у них есть свод правил, которым ваше приложение должно следовать, чтобы быть приемлемым, это было хорошо, но с какого языка я пишу свое приложение, это слишком много. опять же, я понимаю, это их платформа, и они могут делать то, что им нравится. –

+0

Если monotouch делает все абсолютно правильно, что бы Apple знал, какой язык вы использовали, вы не отправляете им исходный код (если только это не изменилось). Единственная причина, по которой они будут знать, - это то, что ОС не может правильно управлять им и создает ошибки, и в этом случае Monotouch не компилирует его правильно, и это повлияет на пользователя. И если вы беспокоитесь о нарушении соглашения, используя monotouch, вы собираетесь это сделать, пытаясь перевести на Obj-C, чтобы это не было проблемой. – Rudiger

+0

@Rudiger: monotouch делает все абсолютно правильно, бинарный файл, который он производит, имеет некоторые «маркеры» и «подписи», что делает очевидным для Apple, что двоичный файл компилируется с помощью монотота. есть много приложений на appstore, написанных в объективе c, которые великолепны, и есть много дерьмовых. многие из них терпят крах, многие этого не делают. многие утечки памяти, многие не делают. что делает приложение отличным не инструментом, является разработчиком. запрещая определенные инструменты, никто не достигает лучшего качества. –

Смежные вопросы