Для генерации программ в Java есть " CodeModel API", как и для "Objective-C"?
Я хочу сгенерировать простую программу-C "Hello World", какой API я должен использовать для этого? На самом деле я не знаю, возможно ли это или нет? Но в Java я знаю, что есть API CodeModel.
JCodeModel cm = new JCodeModel();
JDefinedClass class1 = cm._class("Main");
JMethod method = class1.method(JMod.PUBLIC, cm.VOID, "print");
JBlock block = method.body();
JVar a = block.decl(cm.INT, "a", JExpr.lit(10));
JVar b = block.decl(cm.INT, "b", JExpr.lit(20));
с помощью этого кода мы создаем один файл с именем класса в качестве "основного", имя метода - "print", а в теле метода - "a & b две переменные типа int", например, я хочу создать один файл в target-C для отображение "Hello world" в поле зрения. возможно ли это?, если да, то как?
1 ответ
То, что вы просите сделать, очень сложно в OS X и почти невозможно для iOS.
В отличие от Java, который использует байт-код для хранения программ, Objective-C компилируется в собственный исполняемый файл. Это означает, что вам понадобится полный компилятор и компоновщик, встроенный в ваше приложение.
Излишне автоматически генерировать исполняемые файлы OS X очень сложно.
После того, как вы скомпилировали и соединили исполняемый файл, который вы создали, вам нужно выполнить его. В OS X вы можете напрямую выполнять двоичные файлы, но все двоичные файлы в iOS должны иметь цифровую подпись Apple. Исполняемый файл должен быть упакован как новое приложение и подписан вашим профилем распространения. Новое приложение должно быть отправлено в Apple для цифровой подписи. Затем его необходимо будет загрузить и установить с Apple. Наконец, это может быть выполнено как отдельное приложение.
Насколько мне известно, Apple не имеет программы для получения автоматически сгенерированных программ. Я не думаю, что Apple заинтересована в этом как в бизнес-модели, и для ее разработки с Apple потребовалось бы много юристов и контрактов, которые я бы никогда не надеялся понять.
Само собой разумеется, автоматическое создание исполняемых файлов iOS почти невозможно.
Возможно, было бы легче изучить другие альтернативы.