Lua在iPhone上的应用

5
我想在iPhone上运行时加载Lua脚本。 有可能做到吗?
我该如何开始使用Lua?我找不到有用的信息。唯一能找到的是这应该是可行的,但我不知道具体怎么做。

你确定这是可能的吗?据我所知,苹果禁止在iPhone上使用解释性语言。 - Timo Geusch
1
@Timo Geusch:不是真的。(这个问题在SO上已经讨论了多次。)唯一被禁止的是从不受信任的来源(如网络或用户)加载代码。如果您的代码来自可信来源(基本上意味着App Store),苹果就不关心您如何运行它:解释它、编译它,甚至将其发送到中国由童工手动评估。App Store中有很多解释性代码,例如用Ruby编写的维基百科应用程序。 - Jörg W Mittag
3
如果你找不到Lua文档,那么你可能没有资格写太多的软件。 - Azeem.Butt
1
当然,截至昨天,所有这些都已经改变了。根据新的4.0协议,只有C、C++、Objective-C和JavaScript是允许的。甚至不允许使用其他语言并生成其中之一,应用程序必须最初是用这四种语言之一编写的。 - Jörg W Mittag
1
相关内容:https://dev59.com/hEjSa4cB1Zd3GeqPHa6A - cregox
显示剩余2条评论
4个回答

7

有点令人沮丧的是,这些华丽的网页甚至没有提到Lua这个词。有人能否评论一下这个SDK是否值得99美元? - Norman Ramsey
这绝对是生产高质量应用程序/游戏的最快方法,没有之一。 - Jonathan Beebe

4

Lua的文档非常好,同时阅读PIL(Programming in Lua)第一版可在线获取,第二版在硬拷贝上价格不贵。

Lua专门设计为嵌入式语言,只需链接到任何C(或Obj-C或C ++)项目,并使用C API加载脚本并运行即可。

请注意,苹果禁止创建脚本平台;但据我所知,这仅意味着用户不应该能够添加Lua脚本以增强您的应用程序。您可以自由地使用嵌入式Lua使您的应用程序更加灵活和易于编写。


1
显然,限制已经被取消。请参阅http://www.apple.com/pr/library/2010/09/09statement.html。 - lhf
据我所读,被移除的限制仅限于最近添加的:那些限制语言和工具的限制。现在规则更接近原始规则:使用任何工具/语言,但所有代码必须嵌入应用程序中。 - Javier

4

3

我已将 Lua 编译为 iPhone 应用程序。如果您在其他上下文中使用过 Lua,那么这很直观。唯一需要注意的是,iPhone 并未以传统方式公开其文件系统,因此我最终使用资源束来存储脚本,并不得不重写 lua_dofile 函数以从束中接受文件。

我建议先将 Lua 编译为非 iPhone 应用程序,然后再尝试在 iPhone 上使用它。一旦您了解了 C API,将其适应 Cocoa 移动框架并不难。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接