1. 程式人生 > >lua in iOS App

lua in iOS App

http://www.cocoachina.com/ios/20150227/11183.html

起源

其實很早我在參加一個沙龍的時候,就聽到了點評的同學在用lua做ab test,雖然那個時候我覺得我自己很牛逼了,但是其實還是啥都沒有聽懂,直到今天才回過神來仔細看了下這個東西。

Lua(簡稱擼啊)在iOS中的確被廣泛的使用著,在行業中最著名的莫過於魔獸世界(山口山)以及移動網際網路的憤怒的小鳥。

Lua在cocos2d以及iOS的應用動態變化上面使用比較廣泛,下面我們用兩個例子來說明下。

框架

不得不說,最著名的莫過於wax和waxpatch,一個是能夠在iOS中使用lua語言編寫介面控制元件,一個是能夠動態更新。

wax

我們首先先要下載wax.framework,然後新建一個iOS app的project,將該模組新增到我們的工程中去。

851528621fb71d44350ba919d89f56f5.png

接著我們需要在 AppDelegate.h import #import

在AppDlegate的實現中增加

1 2 3 4 5 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch.
wax_start("init.lua", nil); return YES; }

接著我們來增加這個 init.lua ,如下程式碼,其實就如同ViewController標頭檔案定義一樣。

1 2 3 4 5 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch.
wax_start("init.lua", nil); return YES; }

有了標頭檔案之後我們也需要有實現吧,這個程式碼可讀性就比oc來的高多了,但是需要在第一行宣告在oc中的這個類名。

1 2 3 4 5 6 7 8 9 10 11 12 13 waxClass{"ViewController", UIViewController} function viewDidLoad(self) self.super:viewDidLoad(self) local label = UILabel:initWithFrame(CGRect(0, 120, 320, 40)) label:setColor(UIColor:blackColor()) label:setText("Hello Wax!") label:setTextAlignment(UITextAlignmentCenter) local font = UIFont:fontWithName_size("Helvetica-Bold",50) label:setFont(font) self:view():addSubview(label) end

先不要急著編譯,我們還需要更改一下編譯的方式以及確認framework已經被準確匯入

51c2e759675e9a231d6e9e7f952b86ce.png

我們來看下效果:

bdcdadd0343ea05fcd890e56dc2ba027.gif

相關推薦

lua in iOS App

http://www.cocoachina.com/ios/20150227/11183.html 起源 其實很早我在參加一個沙龍的時候,就聽到了點評的同學在用lua做ab test,雖然那個時候我覺得我自己很牛逼了,但是其實還是啥都沒有聽懂,直到

Train your own ML model using Scikit and use in iOS app with CoreML (and probably with Augmented…

Next we plot the data using below code —%matplotlib inlineimport matplotlib.pyplot as pltiris_data.hist(bins=50, figsize=(20,15))plt.show()Plot of sepal_le

Fetching Remote Data With Core Data Background Context in iOS App

Fetching Remote Data With Core Data Background Context in iOS AppApp Core Data Remote Fetch DiagramCore Data is an object graph and persistence framework p

[iOS] How to detect when iOS app appears in foreground, with Swift?

You can use the applicationDidBecomeActive(_:) method of your UIApplicationDelegate. You should read up on the app lifecycle. Your app delegate would then

Building an Image Segmentation App in iOS

Image segmentation is a computer vision task that labels each pixel in an image with the type of object it belongs to. We can use that labeled information

Get iOS App Store Reviews in Slack | Hacker News

Hey HN!I'm an app developer who has put out a few apps over the last few years but I wanted a way to read all of my customer reviews as soon as they were a

How to Integrate a C Library into an iOS App Written in Swift

Nowadays, everyone values privacy and security. That’s why it wasn’t surprising when, recently, we needed to use an encryption library on one of our Distil

Browsing files in your iOS app in Swift

Browsing files in your iOS app in SwiftIntroducing FileBrowserLast month I released an open source iOS framework for zipping and unzipping files called Zip

In-App Purchase 被拒絕!IOS App上傳App Store 由於使用第三方支付而被拒絕的解決方案

Guideline 3.1.1 - In-App Purchase We noticed that your app contains a payment mechanism other than in-app purchase for digital content

iOS App讓自己的應用在其他應用中開啟列表中顯示、iOS把自己的應用新增到”活動“、將PDF檔案Open In MyApp

像百度網盤等應用,裡面的檔案開啟時,都可以通過以下應用再開啟檔案。下面紅色框框內的我的jpg就是我做的一個例子。因為例子沒有提供Icon,所以顯示的是預設icon。 下面就是這例子的主要步驟和程式碼。 例子是一個開啟jpg圖片程式。 1、在專案的**inf

iOS “[App] if we're in the real pre-commit handler we can't actually add any new fences due

我在執行程式的時候老是提示一堆”iOS “[App] if we’re in the real pre-commit handler we can’t actually add any new fences due”。這是編譯器內部的顯示,與 app 正常使用無

改變iOS app的icon(iOS10.3)

res sta play type assets icon stand wss 桌面 原文 改變iOS app的icon官方iOS10.3新增了可以讓開發者去更改app的icon,接下來看看怎麽更改。官方API給的東西很少,只是介紹了一個實例方法: 1

iOS app內打開safari

blank googl ppa git cnblogs afa http oauth 允許 最近使用google的oauth認證,發現不再允許使用UIWebview進行認證了,必須使用系統遊覽器,使用遊覽器也不一定要在app之間跳轉,ios使用SFSafariViewCon

iOS App初次啟動時的用戶引導頁制作實例分享

復制代碼 bound gpo 並且 fault launch boa com content iOS App初次啟動時的用戶引導頁制作實例分享 作者:老初 字體:[增加 減小] 類型:轉載 時間:2016-03-09 我要評論 這篇文章主要介紹了iOS App初次啟動

ios App 動畫分享

and tab ios ebo *** fadein car ble check 一、動畫分享 1. ************* 轉場動畫 *************    ZFDragableModalTransition    GTAppMenuContro

ios App textField placeholder 信息上浮

ext label desc setup utl per loading idt atomic textField placeholder 提示信息上浮 當輸入框 有文的時候 placeholder 信息就浮動到左上角。 只要繼承就行,不用附加調用代碼, 使用非常簡單。

避免SIGPIPE導致的iOS應用閃退/Avoiding SIGPIPE signal crash in iOS(mach_msg_trap、SIGPIPE信號)

sig and 連接 mac os 找到 option sock ram round 問題描述: 應用運行時,鎖屏後再打開有一定幾率閃退。通過真機調試發現程序會中斷在此處: libsystem_kernel.dylib`mach_msg_trap: 解決思路: 通

CoreData(數據庫升級 )版本遷移-iOS App升級安裝

版權 取數據 多版本 系統默認 新建 庫存 object edit 沒有 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 如果IOS App 使用到CoreData,並且在上一個版本上有數據庫更新(新增表、字段等操作),那在覆蓋安裝程序時就要進行CoreData數

***使用Fiddler進行IOS APP的HTTP抓包

刪除 代理 htm log img crp 頭上 ant 重新安裝 Fiddler不但能截獲各種瀏覽器發出的HTTP請求, 也可以截獲各種智能手機發出的HTTP/HTTPS請求。Fiddler能捕獲IOS設備發出的請求,比如IPhone, IPad, MacBook. 等等

使用Fiddler進行IOS APP的HTTP抓包

fiddler avi all nbsp size tun roo embedded 無線 Fiddler不但能截獲各種瀏覽器發出的HTTP請求, 也可以截獲各種智能手機發出的HTTP/HTTPS請求。Fiddler能捕獲IOS設備發出的請求,比如IPhone, IPad,