LuaScriptCore旨在能够在多种平台上方便地使用Lua。其提供了与各种平台的功能交互(目前支持iOS、Android以及OS X),让开发者无须关心Lua与各个平台之间是实现交互的细节,只需要根据自己的业务需求,使用LuaScriptCore提供的方法,轻松简单地实现各种功能。其能做到: 从平台原生层代码调用Lua中的方法和变量,控制Lua的业务逻辑 从Lua中调用原生层提供的方法,让一些Lua无法处理或者耗时的处理交由原生方法实现 从原生层中直接扩展Lua的功能 从原生层定义的类直接映射到Lua中使用,让Lua更方便地实现面向对象的编程 本次更新内容: 目前iOS和Android平台下可以通过CocoaPods和jcenter或者Maven Central引用LuaScriptCore。 OSX和iOS平台下增加Swift版本,可以使用Swift来开发LuaScriptCore了。 Android平台下增加onException方法用于捕获Lua运行时异常。 Unity3D下增加导出模块和类到Lua中。 面向对象模块增加实例对象的super属性可以访问类的父类实例方法,用于重载方法时使用,如:self.super.init(self); 面向对象模块增加检查对象类型方法instanceOf和检测继承关系方法subclassOf 面向对象模块中的Lua类型增加类型名称name属性。 修复OSX和iOS平台下Lua传入包含二进制数据的字符串无法自动转换为NSData问题。 允许面向对象模块的创建对象方法create传入参数并在实例对象的init方法中取得。 修复Android平台下Lua数组元素或者字典元素超过512个时栈溢出问题。感谢John的反馈^_^ 修复Table类型作为参数传入时,不是作为最后一个参数传入时发生异常。 修复Android平台下报告没有找到localeconv符号问题。 优化对象实例调用时不采用:号调用方法产生异常的提示。 修复Android平台下无法在低于Api19的机器运行问题。 修复Android平台下对象实例方法没有继承问题。 iOS、OSX、Android平台增加设置和获取全局变量接口方法。 优化方法返回值的实现,允许Lua->原生以及原生->Lua返回多个返回值。 修复Android平台下,调用类的方法或实例方法时,如果传入类型与声明类型不匹配导致崩溃问题。 修复iOS、OSX平台下的evalScript、callMethod接口以及Function的invoke接口设计不统一问题。 修复Android平台下Module的方法传入Table类型时崩溃问题 修复Android平台下调用evalScript无法require资源包中的文件 修复Android平台下多个模块和类中同名存静态方法调用失效问题。 修复从lua回传多层级table时崩溃问题。 修复原生对象传入lua时没有调用init方法问题。 修复对象释放时出栈问题。 修复一些已知问题和优化性能。 LuaScriptCore v1.3.0,移动端 Lua 桥接框架下载地址