Objective-C运行时代码生成

时间:2011-09-13 23:07:43

标签: objective-c code-generation runtime

我想创建一个Objective-C应用程序,它允许您在运行时指定类实现。

我希望用户输入一些代码(目前代码的正确性超出了范围)。 当用户完成后,我想创建一个类型化代码的类,并在应用程序中使用它。

所以我想在应用程序的运行时动态添加代码。这可能吗? 如果是这样,我怎么能实现这一目标?如果没有,为什么不,有没有其他选择来创造我想创造的相同效果?

感谢。

3 个答案:

答案 0 :(得分:5)

你可以在运行时dynamically load classes,但为了达到目的,你首先需要处理分发编译器,编译依赖项(标题,...),设置环境等等。

通常,应用程序使用可轻松嵌入(Lua,Python,...)或已在平台上可用的脚本语言(JavaScript,AppleScript,...)。

答案 1 :(得分:3)

我会查看F-Script。它比Obj-C更接近smalltalk,但IMO比JavaScript或Lua更接近Obj-C: - )

答案 2 :(得分:1)

在iOS设备上,这是不可能的。在Mac上,您可以链接clang + llvm库并使用它们将代码生成到缓冲区中,然后mprotect()缓冲区可执行,我相信。