Lua實踐1

聽到有朋友說lua可以進(jìn)行線上版本bug的修復(fù),就試著學(xué)習(xí)一下跨细,用到的框架地址:https://github.com/alibaba/wax 傲须,很多網(wǎng)上的資料說不支持64位赦肋,但現(xiàn)在看來是已經(jīng)支持了。

Use with cocoa pods

add
 pod 'wax', :git=>'https://github.com/alibaba/wax.git', :tag=>'1.1.0'
then you can run lua code.放置AppDelegate中哮塞。
wax_start(nil, nil);
wax_runLuaString("print('hello wax')");

記的導(dǎo)入wax.h
運(yùn)行成功,說明你已經(jīng)成功集成凳谦。

在本地創(chuàng)建一個空的文件忆畅,文件命名為test.lua。

waxClass{"VC1",UIViewController}
function touchesBegan_withEvent(self,touches,event)
self:view():setBackgroundColor(UIColor:blueColor())
end

創(chuàng)建ViewController命名為VC1尸执,實現(xiàn)方法

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    NSLog(@"sss");
}

在AppDelegate中

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    wax_start("test.lua", nil);
    
    return YES;
}

運(yùn)行下你會發(fā)現(xiàn)VC1 中的touchesBegan方法被替換了家凯。VC1的背景顏色變成藍(lán)色了。
以上就是本地運(yùn)行l(wèi)ua文件的效果剔交。當(dāng)然更多的時候我們是從服務(wù)器上把lua文件下載本地肆饶,然后運(yùn)行時進(jìn)行一些有問題的解決(替換方法等)。這里只做簡單的思路介紹岖常。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    [self downloadLuaFile];
     return YES;
}

- (void)downloadLuaFile{
    dispatch_async(dispatch_get_main_queue(), ^{
        NSString *fileName = @"change_002.lua";     //本地要保存的文件名稱驯镊。
        NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSString *directory = [doc stringByAppendingPathComponent:fileName];
        
        NSURL *url=[NSURL URLWithString:@"http://localhost/xxxx.lua"];        //lua文件的服務(wù)器地址

        NSURLRequest *request=[NSURLRequest requestWithURL:url];
        
        NSError *error=nil;
        
        NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
        
        if([data length]>0)
            
        {
            NSLog(@"下載成功");
            if([data writeToFile:directory atomically:YES]){
                NSLog(@"保存成功");
                NSString *luaFilePath = [[NSString alloc ] initWithFormat:@"%@/?.lua;%@/?/init.lua;%@/?.dat;",doc, doc,doc];
                setenv(LUA_PATH, [luaFilePath UTF8String], 1); //設(shè)置LUA路徑
                wax_start("change_002.lua", nil);
            }else {
                NSLog(@"保存失敗");
            }
        } else {
            NSLog(@"下載失敗,失敗原因:%@",error);
        }
    });
}

基本用法就是這樣竭鞍,剩下的一些邏輯可以自己完善板惑。
比如通過請求接口獲取lua文件的地址。對已經(jīng)存在的lua文件在應(yīng)用啟動的時候應(yīng)該做什么樣的操作偎快。后面有時間會去更深入的學(xué)習(xí)lua的實用技巧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冯乘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子晒夹,更是在濱河造成了極大的恐慌裆馒,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丐怯,死亡現(xiàn)場離奇詭異喷好,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)读跷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門梗搅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事无切〉炊蹋” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵哆键,是天一觀的道長掘托。 經(jīng)常有香客問我,道長洼哎,這世上最難降的妖魔是什么烫映? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮噩峦,結(jié)果婚禮上锭沟,老公的妹妹穿的比我還像新娘。我一直安慰自己识补,他們只是感情好族淮,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凭涂,像睡著了一般祝辣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上切油,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天蝙斜,我揣著相機(jī)與錄音,去河邊找鬼澎胡。 笑死孕荠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的攻谁。 我是一名探鬼主播稚伍,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼戚宦!你這毒婦竟也來了个曙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤受楼,失蹤者是張志新(化名)和其女友劉穎垦搬,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體艳汽,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡猴贰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了骚灸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糟趾。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡慌植,死狀恐怖甚牲,靈堂內(nèi)的尸體忽然破棺而出义郑,到底是詐尸還是另有隱情,我是刑警寧澤丈钙,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布非驮,位于F島的核電站,受9級特大地震影響雏赦,放射性物質(zhì)發(fā)生泄漏劫笙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一星岗、第九天 我趴在偏房一處隱蔽的房頂上張望填大。 院中可真熱鬧,春花似錦俏橘、人聲如沸允华。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽靴寂。三九已至,卻和暖如春召耘,著一層夾襖步出監(jiān)牢的瞬間百炬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工污它, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留剖踊,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓轨蛤,卻偏偏與公主長得像蜜宪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子祥山,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容

  • Nginx API for Lua Introduction ngx.arg ngx.var.VARIABLE C...
    吃瓜的東閱讀 5,718評論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理圃验,服務(wù)發(fā)現(xiàn),斷路器缝呕,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • Wax Lua是什么澳窑? Lua 我就不介紹了,我們都在使用的腳本語言供常,游戲開發(fā)的神器摊聋。 而 Wax 就是使用 Lu...
    零紀(jì)年閱讀 1,443評論 0 2
  • 指令集 lua_capture_error_log lua_use_default_type lua_malloc...
    吃瓜的東閱讀 11,971評論 0 2
  • 營銷策劃是一種現(xiàn)代性經(jīng)營思維,其核心是以消費(fèi)者需求為導(dǎo)向栈暇,消費(fèi)者需要什么就生產(chǎn)什么麻裁。它是一種以消費(fèi)者為導(dǎo)向,是品牌...
    羽逸丷閱讀 4,391評論 12 127