xcode 安装wax oc lua

yqmfly 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

xcode 安装wax oc  lua

好了,到此,我们已经把一个能用的Wax假装加到我们的Project中了。

说假装是因为还不能用。不信你试试?

xcode 安装wax oc  luaxcode 安装wax oc  lua

好了,可以冷静点了,我们现在就让它能用起来 

首先,因为Wax的作者写Wax并维护的那个年代,还没有ARC这回事儿,我们需要禁用掉工程的ARC功能。

如果你是大神,将Wax重新拿回来改改改,Update到可以支持ARC的话,请一定一定联系我一起学习交流一下:[发邮件给我]

禁用ARC的方法如下:点击我们的工程,然后选择Build Setting,找到ARC,禁用掉

是不是感觉有点复杂,没事儿,我会上图的: 

xcode 安装wax oc  luaxcode 安装wax oc  lua

不管你信不信,我反正就当你已经改好了。

点一下Run,你会发现Error少了一堆。

xcode 安装wax oc  lua

xcode 安装wax oc  lua

然后使用默认的休整方式,添加一个base class

xcode 安装wax oc  luaxcode 安装wax oc  lua

好了,可以运行了。

xcode 安装wax oc  luaxcode 安装wax oc  lua

xcode 安装wax oc  luaxcode 安装wax oc  lua

你可以自由发挥你在Lua上的优势了。

不过,到此我们都还没有使用过Lua不是么?

好了现在开始。

首先,由于SingleView的主体界面是Main.storyboard,我们把它阉掉先:

xcode 安装wax oc  lua

xcode 安装wax oc  lua

好了,阉掉了。现在Main.storyboard和我们这个Project已经没关系了。

顺便一提,LaunchScreen.xib有没有无所谓,载入界面嘛,影响不大。

从项目里面删除AppDelegrate.h以及AppDelegate.m

然后我们要将Lua用起来了。

首先找到main.m,把内容改为:

  1. // Wax并不使用nib文件来装入主视图,一切在WoodyPlusWax.lua文件里面完成  
  2.   
  3. #import <UIKit/UIKit.h>  
  4.   
  5. #import "wax.h"  
  6. #import "wax_http.h"  
  7. #import "wax_json.h"  
  8. #import "wax_xml.h"  
  9.   
  10. int main(int argc, charchar *argv[])  
  11. {  
  12.     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];  
  13.       
  14.     wax_start("WoodyPlusWax", luaopen_wax_http, luaopen_wax_json, luaopen_wax_xml, nil);  
  15.       
  16.     int retVal = UIApplicationMain(argc, argv, nil, @"WoodyPlusWax");  
  17.       
  18.     [pool release];  
  19.       
  20.     return retVal;  
  21. }  


xcode 安装wax oc  lua

然后将我们需要的二进制加入工程

xcode 安装wax oc  lua

添加脚本配置(如果编译提示lua目录出错,请在这里修改错误的部分)

+选择 New Run Script Phase

xcode 安装wax oc  lua

加入:

 Shell  :  /bin/zsh 
 "$PROJECT_DIR/wax/build-scripts/copy-scripts.sh"
如图

xcode 安装wax oc  lua

设置一下wax.framework的导入地址( $(PROJECT_DIR  ) 

xcode 安装wax oc  lua
以及xml的头文件地址( $(SDK_ROOT)/usr/include/libxml2 )

xcode 安装wax oc  lua

(上面有几张图不当心加了水印。。要是看不清抱歉抱歉)

WoodyPlusWax.lua

内容如下(可自行发挥):

  1. Lua代码:  
  2.   
  3. waxClass{"WoodyPlusWax", protocols = {"UIApplicationDelegate"}}  
  4.   
  5. function applicationDidFinishLaunching(self, application)  
  6.     local frame = UIScreen:mainScreen():bounds()  
  7.     self.window = UIWindow:initWithFrame(frame)  
  8.     self.window:setBackgroundColor(UIColor:colorWithRed_green_blue_alpha(0.545, 0.0, 1, 1))  
  9.   
  10.     local label = UILabel:initWithFrame(CGRect(0, 100, 320, 35))  
  11.     label:setFont(UIFont:boldSystemFontOfSize(30))  
  12.     label:setColor(UIColor:whiteColor())  
  13.     label:setBackgroundColor(UIColor:colorWithRed_green_blue_alpha(0.545, 0.3, 1, 1))  
  14.     label:setText("前方高能:")  
  15.     label:setTextAlignment(UITextAlignmentCenter)  
  16.   
  17.     local label1 = UILabel:initWithFrame(CGRect(0, 135, 320, 35))  
  18.     label1:setFont(UIFont:boldSystemFontOfSize(25))  
  19.     label1:setColor(UIColor:whiteColor())  
  20.     label1:setBackgroundColor(UIColor:colorWithRed_green_blue_alpha(0.545, 0.3, 1, 1))  
  21.     label1:setText("WoodyPlus正在调用Lua")  
  22.     label1:setTextAlignment(UITextAlignmentCenter)  
  23.   
  24.     self.window:addSubview(label)  
  25.     self.window:addSubview(label1)  
  26.   
  27.     self.window:makeKeyAndVisible()  
  28.   
  29.     puts("")  
  30.     puts("-------------------------------------------------")  
  31.     puts("- You can print stuff to the console like this! -")  
  32.     puts("-------------------------------------------------")  
  33. end  


至此,点击Run应该就可以出现如下效果:

xcode 安装wax oc  lua

相关推荐

APCDE / 0评论 2019-12-01
野生的世界 / 0评论 2015-10-29