Wax框架简明教程(1) 简介
来源:互联网 发布:数据库管理系统的发展 编辑:程序博客网 时间:2024/06/01 14:00
项目地址:https://github.com/probablycorey/wax
一、什么是Wax
Wax是一个用lua语言编写本地iPhoneapp的框架。它使用OC运行时将OC和Lua进行绑定。通过Wax,你可以用Lua做任何OC可以做到的事情!你还等什么?赶快开始吧!
二、为什么用Lua编写iPhoneapp?
我喜欢写iPhone app,但仅限于使用动态语言而不是用OC来写它们。为什么许多人宁愿用Lua+Wax而不是OC?有以下几个原因:
q垃圾自动回收!alloc、retain和release的日子终于一去不复返了!
q更少的代码!不再有头文件,不再有静态类型、数组和字典语句!Lua使你的代码行数减少。
q能访问Cocoa、UITouch、Foundation这些框架,每一样都不少!Wax会将OC框架自动暴露给Lua,你想要的每个框架仍然是有效的!
qHTTP请求更简单。与RESTwebservice进行交互从来没有这么容易过!
qLua支持闭包,即块语句!如何使用过它们的人都知道它们是如何的强大。
qLua内置了正则表达式匹配库。
三、例子
关于Wax app的简单示例,请看examples文件夹。
如何创建UIView并设为红色?
--忘掉alloc吧!内存由Wax自动管理
view= UIView:initWithFrame(CGRect(0, 0, 320, 100))
--用冒号向OC对象发送消息
--所有UIView对象的方法都可用这种方法访问
view:setBackgroundColor(UIColor:redColor())
如何调用多个参数的方法?
--在方法名中加入下划线连接参数,然后象使用正常的C函数一样使用
UIApplication:sharedApplication():setStatusBarHidden_animated(true,false)
如何传递array/string/dictionary参数?
--Wax自动转变array/string/dictionary为NSArrayv/NSString/vNSDictionary对象(以及逆转换)
images= {"myFace.png", "yourFace.png", "theirFace.png"}imageView= UIImageView:initWithFrame(CGRect(0, 0, 320, 460))imageView:setAnimationImages(images)
如何创建一个UIViewController子类?
--在"MyController.lua" 中创建
--创建一个OC类MyController,继承自UIViewController
--这其实是一个OC对象,如果有必要的话,你甚至可以在OC代码中引用它
waxClass{"MyController",UIViewController} functioninit()
--要调用父类方法,显式地使用self.super
self.super:initWithNibName_bundle("MyControllerView.xib",nil) returnselfend functionviewDidLoad()
--在这里写入其它代码
end
你说HTTP调用会很轻松,我才不信呢…
url= "http://search.twitter.com/trends/current.json"
--异步调用,当收到应答调用回调函数
wax.http.request{url,callback = function(body, response)
--发出NSHTTPURLResponse 请求
puts(response:statusCode())
--由于content-type为json, Wax 会自动解析并将之封装到Luatable类型
puts(body)
end}
因为Wax会自动将NSString,NSArray,NSDictionary和NSNumber转换为原生的Lua值,有时候你必需强制转换回OC对象,例如:
local testString ="Hello lua!"local bigFont =UIFont:boldSystemFontOfSize(30)local size =toobjc(testString):sizeWithFont(bigFont)puts(size)
- Wax框架简明教程(1) 简介
- Wax框架简明教程(1) 简介
- Wax框架简明教程(1) 简介
- Wax框架简明教程(1) 简介
- Wax框架简明教程(3)开始使用Wax
- Wax框架简明教程(4)Wax HTTP+XML示例
- Wax框架简明教程(4)Wax HTTP+XML示例
- Wax框架简明教程(3)开始使用Wax
- Wax框架简明教程(4)Wax HTTP+XML示例
- Wax框架简明教程(2)安装
- Wax框架简明教程(2)安装
- wax框架
- 简明x86汇编语言教程(1)-汇编语言简介
- WebGL基础简明教程1-简介
- wax - 1
- wax lua 简介
- 简明Python教程 --- 1.简介
- ArcGIS Pro 简明教程(1)Pro简介
- java logging--java记录日志
- JavaScript事件冒泡简介及应用
- experiment : 字符串分解 on drv
- struct类型的赋值
- Hadooop sites
- Wax框架简明教程(1) 简介
- 设计模式之迭代器模式java实现代码
- Windows 下安装并配置 SVN 服务器全过程
- java基本概念(二)
- 提炼数据 数据处理
- 如何规范.net中的js开发(1)概念篇(更新版)
- WebService 实例应用
- mysql数据库性能的十个参数(转)
- [125]Valid Palindrome