你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> Wax框架簡明教程(1) 簡介

Wax框架簡明教程(1) 簡介

編輯:IOS開發綜合

一、什麼是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)  

returnself

end 

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)

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved