Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于生成程序,有;代码模型API“;在java中,是否有Objective-C的API?_Java_Objective C_Sun Codemodel - Fatal编程技术网

对于生成程序,有;代码模型API“;在java中,是否有Objective-C的API?

对于生成程序,有;代码模型API“;在java中,是否有Objective-C的API?,java,objective-c,sun-codemodel,Java,Objective C,Sun Codemodel,我想生成一个简单的“Hello World”objective-C程序,我必须使用哪个API?我真的不知道这是否可能,但在java中我知道有CodeModelAPI JCodeModel cm = new JCodeModel(); JDefinedClass class1 = cm._class("Main"); JMethod method = class1.method(JMod.PUBLIC, cm.VOID, "print"); JBlock block = method.body()

我想生成一个简单的“Hello World”objective-C程序,我必须使用哪个API?我真的不知道这是否可能,但在java中我知道有CodeModelAPI

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));

使用这段代码,我们创建了一个文件,类名为“main”,方法名为“print”,方法体中为“a&b两个int变量”,就像我想在objective-C中创建一个文件,用于在视图中显示“Hello world”。有可能吗?如果有,怎么可能?

在OS X中,你要求做的事情非常困难,而在iOS中几乎不可能

与使用字节码存储程序的Java不同,Objective-C被编译成本机可执行文件。这意味着您需要在应用程序中内置完整的编译器和链接器

无需自动生成OSX可执行文件是非常困难的

一旦编译并链接了创建的可执行文件,就需要执行它。在OSX中,您可以直接执行二进制文件,但iOS中的所有二进制文件必须由苹果公司进行数字签名。可执行文件需要打包为一个新的应用程序,并由您的分发配置文件签名。新的应用程序需要提交给苹果进行数字签名。然后需要从苹果下载并安装。最后,它可以作为一个单独的应用程序执行

据我所知,苹果没有接收自动生成程序的程序。我不认为苹果对这一商业模式有任何兴趣,与苹果合作将涉及大量律师和合同,我永远不希望了解这些

不用说,自动生成iOS可执行文件几乎是不可能的


也许研究其他替代方案会更容易。

只是澄清一下-您想在运行时创建Obj-C程序吗?@peter Hull,是的,我想这样。为什么?你到底想达到什么目的?你只是在做实验吗?不,我是新手,我最近加入了一家公司,你的任务是生成代码以显示“Hello world”,以便使用另一个程序。xcdatamodel与核心数据相关,用于持久层,与你所问的无关。