【问题标题】:Objective-C runtime code generationObjective-C 运行时代码生成
【发布时间】:2011-09-14 09:05:20
【问题描述】:

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

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

所以我想在应用程序的运行时动态添加代码。这可能吗? 如果是这样,我该如何实现?如果没有,为什么不呢?是否有任何替代方法可以创建我想要创建的相同效果?

谢谢。

【问题讨论】:

  • 仅供参考,你不能把它放到应用商店里,因为它违反了 Apple 的规则来添加这样的代码。

标签: objective-c code-generation runtime


【解决方案1】:

您可以在运行时dynamically load classes,但要到达那里,您首先需要处理分发编译器、其编译依赖项(头文件、...)、设置其环境等。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2011-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多