中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

開(kāi)發(fā)"憤怒的小鳥(niǎo)"的Lua語(yǔ)言:Wax框架詳解

  2011年6月的編程語(yǔ)言排行榜Lua語(yǔ)言一軍突起,一舉進(jìn)入前十名。這與一年前蘋果決定在ios系統(tǒng)上使用Lua語(yǔ)言密不可分。但是,你了解如何用Lua語(yǔ)言在ios上開(kāi)發(fā)應(yīng)用嗎?這里將向各位介紹Lua語(yǔ)言的ios應(yīng)用開(kāi)發(fā)框架Wax,其中在ios平臺(tái)上無(wú)比火爆的《憤怒的小鳥(niǎo)》就是由Lua語(yǔ)言用Wax開(kāi)發(fā)的。全文共分兩部分,第一部分將帶您深入探討Wax具有的一些好處,同時(shí)演示把Lua與Xcode 4和ios軟件開(kāi)發(fā)工具包(SDK)集成起來(lái)必不可少的實(shí)際步驟。第二部分將逐步介紹如何用Wax構(gòu)建一個(gè)簡(jiǎn)單的應(yīng)用程序,顯示Twitter上的當(dāng)前趨勢(shì)話題列表,可以用按鈕來(lái)更新內(nèi)容。

Wax框架及憤怒的小鳥(niǎo)

  Wax是什么?

  Wax for iPhone這種框架在開(kāi)發(fā)時(shí),旨在把Lua腳本語(yǔ)言和原生Objective-C應(yīng)用編程接口(API)結(jié)合起來(lái)。這意味著,你可以從Lua里面,使用任何和全部的Objective-C類及框架。

  從技術(shù)上來(lái)講,Wax結(jié)合了Objective-C類和原生C代碼。Lua語(yǔ)言嵌入了C語(yǔ)言,然后Objective-C類并入到其中。

  為什么使用Wax?

  Wax是免費(fèi)的、開(kāi)源。與其他一些基于Lua的移動(dòng)開(kāi)發(fā)解決方案不同,Wax是個(gè)開(kāi)源框架,只需要你花一點(diǎn)點(diǎn)時(shí)間就可以上手,不需要花錢。不喜歡Wax的工作方式,或者發(fā)現(xiàn)實(shí)施方面的缺陷?源代碼可免費(fèi)獲取,你總是可以改動(dòng)源代碼,以滿足自己的需要。

  可以利用原生API。這意味著,為教Objective-C而編寫的教程很容易由Lua for Wax來(lái)改動(dòng)和編寫。這還意味著,你的應(yīng)用程序在外觀感覺(jué)上總是如同原生應(yīng)用程序,不過(guò)又得到了用Lua這種高效腳本語(yǔ)言編寫代碼可以節(jié)省時(shí)間的好處。

  可以使用Xcode。這意味著,模擬器和設(shè)備部署都輕而易舉,不會(huì)輕易與未來(lái)的ios版本決裂。

  可以利用所有現(xiàn)有的Objective-C庫(kù)。如果你有一個(gè)Objective-C類是以前編寫的,不需要改動(dòng),就可以將它用在Lua中只要把它放入到Xcode。Three20之類的庫(kù)也是一樣。只要按照正常指令來(lái)添加庫(kù),就可以使用Lua代碼訪問(wèn)它們。

  可以利用Wax Lua模塊。Wax有幾個(gè)內(nèi)置的Lua模塊,使得異步HTTP請(qǐng)求和JavaScript對(duì)象標(biāo)注(JSON)創(chuàng)建/解析極其容易而快速(因?yàn)槟K是用C編寫的)。

  沒(méi)必要管理內(nèi)存。不再需要操心內(nèi)存分配之類的事務(wù)。Wax為你處理這一切。

  Lua類型自動(dòng)轉(zhuǎn)換成對(duì)應(yīng)的Objective-C類型,反之亦然。 這意味著,如果你調(diào)用了需要NSString和NSInteger的某個(gè)方法,但傳送了Lua字符串和Lua整數(shù),Wax會(huì)為你搞定轉(zhuǎn)換工作。這種轉(zhuǎn)換功能強(qiáng)大,甚至可以處理復(fù)雜的Objective-C特性,比如選擇器。

  你可以利用所有上述特性。不需要精挑細(xì)選。你獲得所有特性!

  OK,實(shí)在太棒了!我該如何安裝Wax?

  首先你需要Xcode和iPhone SDK。要是你還沒(méi)有這些東西,趕緊弄一份!

  用Xcode創(chuàng)建項(xiàng)目

  我們先創(chuàng)建一個(gè)新的基于Windows的項(xiàng)目,名為WaxApplication。別忘了把設(shè)備設(shè)置成iPhone:

WaxApplication

WaxApplication

  通過(guò)Finder瀏覽到你保存該項(xiàng)目的文件夾。創(chuàng)建三個(gè)新的文件夾:wax、scripts和Classes。你的文件夾看起來(lái)應(yīng)該像這樣:

通過(guò)Finder瀏覽到你保存該項(xiàng)目的文件夾

  設(shè)置Wax(第一部分,處理文件)

  首先,下載源代碼的壓縮包。Wax放在GitHub上(https://github.com/probablycorey/wax),那樣下載源代碼就很容易。從這里下載壓縮包。

  現(xiàn)在,解壓縮剛下載的文件。瀏覽到剛解壓縮的文件夾。它會(huì)有probablycorey-wax-124ca46之類的名稱。

  你的屏幕現(xiàn)在看起來(lái)應(yīng)該像這樣:

解壓縮剛下載的文件

  現(xiàn)在,執(zhí)行下列操作:

  ◆ 拷貝lib和bin文件夾,把它們粘貼到位于WaxApplication項(xiàng)目文件夾里面的wax文件夾。

  ◆ 將xcode-template/Classes/ProtocolLoader.h拷貝到WaxApplication項(xiàng)目文件夾。

  ◆ 拷貝xcode-template/scripts/文件夾,將它放到WaxApplication項(xiàng)目文件夾里面。

  ◆ 打開(kāi)WaxApplication項(xiàng)目文件夾里面的wax/lib/extensions/文件夾。刪除SQLite和xml文件夾,下圖所示:

你的屏幕

  你的屏幕應(yīng)該看起來(lái)像這樣:

  設(shè)置Wax(第二部分,配置項(xiàng)目)

  現(xiàn)在用Finder選擇Classes、scripts和wax文件夾,把它們拖入到Xcode項(xiàng)目中。把它們放到顯示W(wǎng)ax Application和1 target, ios SDK X.X的那個(gè)條下方。不要勾選顯示Copy items into destination group’s folder(if needed)的復(fù)選框。點(diǎn)擊完成。

  現(xiàn)在點(diǎn)擊顯示W(wǎng)ax Application和1 target, ios SDK 4.3的那個(gè)條。接著采取下列步驟:

  ◆ 在右邊窗格中,尋找Targets標(biāo)題,點(diǎn)擊WaxApplication。點(diǎn)擊Build Phases(構(gòu)建階段)選項(xiàng)卡。點(diǎn)擊Copy Bundle Resources(復(fù)制捆綁資源),清除所有l(wèi)ua文件。

  ◆ 在右下角,先點(diǎn)擊Add Build Phase(添加構(gòu)建階段),再點(diǎn)擊Add Run Script(添加運(yùn)行腳本)。

  ◆ 將Shell設(shè)成/bin/zsh

  ◆ 將Shell下面的文本區(qū)域設(shè)成$PROJECT_DIR/wax/lib/build-scripts/copy-scripts.sh。

  你的屏幕現(xiàn)在看起來(lái)像這樣:

打開(kāi)main.m

  改動(dòng)main.m

  在左邊窗格中,打開(kāi)名為WaxApplication的文件夾。接下來(lái),打開(kāi)Supporting Files文件夾。接著,打開(kāi)main.m,把文件的內(nèi)容換成如下:

   //這是發(fā)生奇跡的地方!
   // Wax并不使用nib文件來(lái)裝入主視圖,一切在AppDelegate.lua文件里面完成
   #import <UIKit/UIKit.h>
   #import "wax.h"
   #import "wax_http.h"
   #import "wax_json.h"
   #import "wax_filesystem.h"
   int main(int argc, char *argv[]) {
   NSAutoreleasePool * pool =[[NSAutoreleasePool alloc] init];
    
   wax_start("AppDelegate.lua", luaopen_wax_http, luaopen_wax_json, luaopen_wax_filesystem, nil);
    
   int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
   [pool release];
   return retVal;
   }

it知識(shí)庫(kù)開(kāi)發(fā)&amp;quot;憤怒的小鳥(niǎo)&amp;quot;的Lua語(yǔ)言:Wax框架詳解,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 欧美精品在线一区 | 国产成人精品视频在线观看 | 国产精品久久久久久久岛一牛影视 | 99精品视频在线观看 | 男人影音 | 国产精品久久久久久久久图文区 | 在线亚洲人成电影网站色www | 国产精品亚洲一区二区三区在线 | 国产99精品| 成人av在线播放 | 中文字幕亚洲视频 | 久久精品av | 天堂中文资源在线 | 久久久www成人免费无遮挡大片 | 日韩蜜桃视频 | av网站在线播放 | 日韩久久成人 | 国产污视频在线 | 91热在线| 日本黄色大片免费 | www.一区二区三区.com | 一级aaaaaa毛片免费同男同女 | 国产精品日韩欧美一区二区三区 | av手机在线播放 | 中文字幕成人在线 | 免费在线观看黄色av | 高清欧美性猛交xxxx黑人猛交 | 不卡一区二区在线观看 | 久久精品视频网站 | 日韩在线精品视频 | 日韩成人在线网站 | 亚洲精品视频三区 | 国产成人免费视频网站高清观看视频 | 精品福利在线 | 粉嫩一区二区三区四区公司1 | 综合五月婷 | 久久久精品 | 国产高清免费 | 亚洲乱码一区二区三区在线观看 | 亚洲一区视频 | 精品91av|