UrbanHooker 2015-01-23
关于ios调用lua,目前大部分有两种办法:Wax和Corona,前者为开源,
Wax安装教程:
1.在GitHub下载Wax :https://github.com/probablycorey/wax
2.打开xCode,点击 Create a new Xcode Project,新建一个ios工程,将工程的Architectures设为armv7
3.在GitHub上下到的Wax的zip,得到一个名为wax-master的目录
在ios工程目录下创建一个名为wax的目录
然后执行以下操作:
1、将wax-master下bin和lib文件夹拷贝到刚刚建立的wax目录下
2、将wax-master\xcode-template下的Classes和scripts目录拷贝到 ****.xcodeproj 同一级目录下
3、删除wax\extensions下的SQLite目录、CGAffine目录、CGContext目录
4、将wax.framework拷贝到 *****.xcodeproj 同一级目录下(wax.framework通过编译wax-master/examples/IBExample可以获得,注意打开IBExample后先设置工程的Architectures为armv7,Valid Architectures为armv7),添加wax、Classes、scripts三个目录拖到Xcode中的项目下(注意不要改变了别的目录结构),不要勾选Copy选项,点击Finish
好了,到此,我们已经把一个能用的Wax假装加到我们的Project中了。
说假装是因为还不能用。不信你试试?
好了,可以冷静点了,我们现在就让它能用起来
首先,因为Wax的作者写Wax并维护的那个年代,还没有ARC这回事儿,我们需要禁用掉工程的ARC功能。
如果你是大神,将Wax重新拿回来改改改,Update到可以支持ARC的话,请一定一定联系我一起学习交流一下:[发邮件给我]
禁用ARC的方法如下:点击我们的工程,然后选择Build Setting,找到ARC,禁用掉
是不是感觉有点复杂,没事儿,我会上图的:
不管你信不信,我反正就当你已经改好了。
点一下Run,你会发现Error少了一堆。
然后使用默认的休整方式,添加一个base class
好了,可以运行了。
你可以自由发挥你在Lua上的优势了。
不过,到此我们都还没有使用过Lua不是么?
好了现在开始。
首先,由于SingleView的主体界面是Main.storyboard,我们把它阉掉先:
好了,阉掉了。现在Main.storyboard和我们这个Project已经没关系了。
顺便一提,LaunchScreen.xib有没有无所谓,载入界面嘛,影响不大。
从项目里面删除AppDelegrate.h以及AppDelegate.m
然后我们要将Lua用起来了。
首先找到main.m,把内容改为:
然后将我们需要的二进制加入工程
添加脚本配置(如果编译提示lua目录出错,请在这里修改错误的部分)
+选择 New Run Script Phase
加入:
设置一下wax.framework的导入地址( $(PROJECT_DIR )
以及xml的头文件地址( $(SDK_ROOT)/usr/include/libxml2 )
(上面有几张图不当心加了水印。。要是看不清抱歉抱歉)
WoodyPlusWax.lua
内容如下(可自行发挥):
至此,点击Run应该就可以出现如下效果:
一.代码块在哪里?如果上面这张图不小心点没了或者没出来,可以看第一步的操作,然后鼠标停留在选中的区域停留2秒以上就会出现左边的??可以将路径中的代码块,迁移到不同的电脑上使用,需重新启动Xcode ;