`

xcode 安装wax oc lua

    博客分类:
  • ios
 
阅读更多

关于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,把内容改为:

 

  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. }  


 

 

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

 

 

 

 

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

 

 

 

+选择 New Run Script Phase

 

 

加入:

 

 Shell  :  /bin/zsh 

 

 "$PROJECT_DIR/wax/build-scripts/copy-scripts.sh"

 

如图

 

 

 

 

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

 


以及xml的头文件地址( $(SDK_ROOT)/usr/include/libxml2 )

 

 

 

 

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

 

 

 

WoodyPlusWax.lua

 

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

 

[plain] view plaincopy
  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应该就可以出现如下效果:

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics