EasyLua 是一个易于集成和使用的库,用于在 Obj-C 和 Lua 之间进行桥接。我们的目标是创建一个易于调用 Lua 和 iOS 的库,无需了解 Lua C 桥接的工作原理。在 Objective-C 类中使用 Lua 代码时也注重代码的可读性。
在 iOS 端无需进行初始化。Objective-C 中的示例
[[EasyLua sharedEasyLua] runLuaString:@"print(\"Hello World\")"];
[[EasyLua sharedEasyLua] runLuaBundleFile:@"MyCode.lua"]
二进制中的所有 Objective-C 类都可在 Lua 中使用。一些 Lua 示例代码
instance = MyClassName('alloc')('init')
instance('methodName:', 'param_1')
instance('methodName:param2name:', 'param_1', 'param_2')
在调用方法时,Lua 字符串会自动转换为 NSString 和 NSNumber,如果需要,将转换成 NSNumbers。此外,ObjectiveObject 会根据需要在这些环境之间发送时进行包装和解包。
字典也可以像 Objective-C 中使用的那样使用
new_dict = NSMutableDictionary('alloc')('init')
new_dict['ReturnKey'] = 'ReturnValue'
此外,当作为 Objective-C 方法的参数返回或调用时,表将转换为 NSArrays 或 NSDictionaries。
EasyLua 原先源于 Lua-Objective-C Bridge。特别感谢原始作者 Toru Hisai!
目前,调用以下方法将失败
NSString('alloc')('init')
这是因为在将字符串转换为 Lua 字符串时,当初始化时,它不知道该做什么。这可以在未来得到修复,但通常不应需要,因为您可以使用 Lua 字符串。
项目 EasyLua 部分版权为 Toru Hisai,2015
EasyLua 的所有其他版权为 Crimson Moon Entertainment LLC,2015
以下授予任何获得此软件及其相关文档文件(“软件”)副本的人免费使用软件的许可,包括但不限于使用、复制、修改、合并、发布、分发、分包和/或出售软件副本的权利,并允许提供软件的人这样做,但需遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,明示或默示的任何保证,包括但不限于适销性、适用于特定目的和无侵权性的保证均不予保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任承担责任,无论是出于合同、侵权或其他行为,均源自、因或与此软件、使用或的其他处理相关。
EasyLua: David Holtkamp [email protected]
Lu ObjC 桥接作者:Toru Hisai [email protected] @torus