无论如何在运行时加载一个目标 c 脚本,并针对当前 iPhone 应用程序中的类/方法/对象/函数运行它?
主要注意事项:我想这样做的主要原因是允许我快速构建应用程序原型,然后在完成主要原型设计阶段后,获取我正在编写的脚本并在构建时编译它们。我从不打算发布一个带有客观 c 解释器的应用程序。
我问的原因是我一直在玩iPhone 蜡,一个可以嵌入到 iPhone 应用程序中的 lua 解释器,它工作得非常好,因为在你的目标中公开可用的任何对象/方法/函数C 代码是自动桥接的,并且在 lua 中可用。
这允许您通过简单地将应用程序的核心设置为用户文档目录中的 lua 文件来快速构建应用程序原型。只需重新加载应用程序,您就可以测试对 lua 文件的更改,而无需在 XCode 中重新构建应用程序 - 节省大量时间!
但是,对于 Apple 最近 3.1.3 SDK 的东西,它让我想到,进行这种类型的快速原型制作最安全的方法是如果你可以使用 Objective C 作为解释代码......那样,最坏的情况下,你可以只需在发布之前将其编译到您的应用程序中即可。我听说 lua 源可以编译为字节码,并在构建时链接,但我认为最终安全的事情是脚本源是在目标 c 中,而不是 lua。这样,您的来源始终处于目标 c 中,无论如何。
这让我想知道(我已经搜索过,但一无所获)是否有任何关于如何在 iPhone 应用程序中嵌入 Objective C 解释器的示例?这将允许您针对构建在二进制文件中的当前类快速构建您的应用程序原型,并且当您即将部署您的应用程序时,而不是通过应用程序内解释器运行这些类,而是编译它们。
在 iPad 和 OS 4 中,蓝牙和虚拟键盘可以与 iPhone 和 iPad 一起使用……这将使这种快速原型设计变得更加有用,至少在开发时间是这样。例如,如果您的应用程序中内置了解释器并在 iPad 上安装了它,那么您可以在旅途中针对解释器进行编码,而无需 XCode。对我来说,让源代码回到“苹果批准”状态的最有用的方法是脚本是否是 Objective C。