我想创建一个Objective-C应用程序,它允许您在运行时指定类实现。
我希望用户输入一些代码(目前代码的正确性超出了范围)。 当用户完成后,我想创建一个类型化代码的类,并在应用程序中使用它。
所以我想在应用程序的运行时动态添加代码。这可能吗? 如果是这样,我怎么能实现这一目标?如果没有,为什么不,有没有其他选择来创造我想创造的相同效果?
感谢。
答案 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()缓冲区可执行,我相信。