哪些脚本语言解释器可以在iOS上运行?

Ben*_*min 5 iphone scripting objective-c

对于不会在AppStore上发布的应用程序,我希望嵌入一个解释器以满足简单的脚本需求.由于我不喜欢使用纯C,因此解释器应该是Objective C库.

在搜索网络时,我遇到了几个针对Objective C的脚本解释器,但这些人是否在iPhone上工作并不是那么清楚.我发现在iPhone上运行良好的是LuaCore,它将Lua脚本带到iOS应用程序.

哪些Objective C脚本解释器已成功嵌入iOS应用程序?

Jac*_*son 3

一些 JavaScript 选项:

  1. 使用无头 WebKit实例
  2. 实例化JavaScriptCore 的自定义构建
  3. CouchBase 尝试让SpiderMonkey运行(比 V8 更现代的 Javascript)

请注意,JS 选项将提供一个相当原始的运行时环境,您可能需要自己编写至少其中一些,才能使其成为一个方便的开发环境。

其他语言:

  1. 使用Python 的尝试。
  2. Clojure通过静态构建的方式JavaScriptCore(参见上面的第2点)。
  3. Nu语言也应该具有良好的集成性,并具有良好的 Objective-C 桥梁。

我只尝试了第一个针对 Javascript 的无头 WebKit 变体,但计划在未来几个月内为项目尝试尽可能多的列出的变体。

更新: 我使用 Javascript 方法1(无头 WebKit)的时间有点长。我毫不费力地让它运行起来,并且会坚持一段时间。但它有一个巨大的缺点:你不能以简单的方式回调到本机。我通过编写一个受PhoneGap启发的桥来解决这个问题,该桥在脚本运行后清空命令队列。

我还使用我提供的链接尝试了Python。我让它编译并执行一些示例代码,但它遇到了与通过 headless WebKit 使用 Js 相同的问题,并且由于它消耗了大量内存,所以我暂时跳过了它。不过,与我用 Js 创建的回调命令队列具有相同精神的回调命令队列是可能的。另一种 Python 方法是尝试使用ctypes调用 Objective C 运行时。这个答案中描述了这种方法。

更新2: 这里有几个用于运行Scheme的新链接,其中包含解释器和编译选项。