【问题标题】:Which script language interpreters will work on iOS?哪些脚本语言解释器可以在 iOS 上运行?
【发布时间】:2010-07-24 18:52:55
【问题描述】:

对于不会在 AppStore 上发布的应用,我希望嵌入解释器以满足轻松编写脚本的需求。由于我不太喜欢使用纯 C,所以解释器应该是一个 Objective C 库。

在网上搜索时,我遇到了一些用于 Objective C 的脚本解释器,但这些人是否在 iPhone 上工作还不是很清楚。我发现显然在 iPhone 上运行良好的是LuaCore,它将 Lua 脚本引入 iOS 应用程序。

您在 iOS 应用中成功嵌入了哪些 Objective C 脚本解释器?

【问题讨论】:

标签: iphone objective-c scripting


【解决方案1】:

我刚刚偶然发现了 Twitter 用户 @mysterycoconutreally decent description,关于如何启动和运行 Lua 支持。

【讨论】:

    【解决方案2】:

    一些 Javascript 选项:

    1. 使用headless WebKit 实例
    2. 实例化custom build of JavaScriptCore
    3. CouchBase 尝试让 SpiderMonkey 运行(比 V8 更现代的 Javascript)

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

    其他语言:

    1. 尝试Python
    2. Clojure 通过JavaScriptCore 的静态构建(参见上面的2点)。
    3. Nu 语言也应该能够很好地集成,并且具有良好的 Objective-C 桥。

    我只尝试了第一个用于 Javascript 的无头 WebKit 变体,但计划在接下来的几个月中为项目尝试尽可能多的那些。

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

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

    更新 2:Here 是用于运行 Scheme 的几个新(ish)链接,具有解释器和编译选项。

    【讨论】:

      【解决方案3】:

      刚刚发现一篇关于scripting on iOS at answerspice.com的帖子。

      根据我评估了Nu 的帖子,并根据this discussion 中引用的Xcode 项目快速启动并运行它(感谢Tim!)。我在模拟器和 iPhone 4 上进行了测试。所以 Nu 绝对是可以嵌入到 iOS 应用程序中的脚本语言之一。

      【讨论】:

        猜你喜欢
        • 2011-07-17
        • 1970-01-01
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 2011-09-01
        相关资源
        最近更新 更多