LuaScriptCore v2.4.0 釋出,移動端 Lua 橋接框架
LuaScriptCore旨在能夠在多種平臺上方便地使用Lua。其提供了與各種平臺的功能互動,讓開發者無須關心Lua與各個平臺之間是實現互動的細節,只需要根據自己的業務需求,使用LuaScriptCore提供的方法,輕鬆簡單地實現各種功能。其能做到:
-
從平臺原生層程式碼呼叫Lua中的方法和變數,控制Lua的業務邏輯
-
從Lua中呼叫原生層提供的方法,讓一些Lua無法處理或者耗時的處理交由原生方法實現
-
從原生層中直接擴充套件Lua的功能
-
從原生層定義的類直接對映到Lua中使用,讓Lua更方便地實現面向物件的程式設計
本次更新內容如下:
-
新增執行緒執行功能,可以通過
LuaContext
的runThread
方法將一個lua方法執行在不同的執行緒中。 -
LuaValue
新增setObject
方法,允許直接為table
物件設定和刪除鍵值對,而不是通過返回值的方法進行調整。 -
新增
LuaContext
的指令碼執行控制介面,可以通過LuaScriptController
來強制中斷指令碼執行。 - iOS / OSX 平臺下增加初始化上下文時傳入配置介面,允許匯出類方法名稱時使用完整名稱。
- 優化addSearchPath方法,可以加入lua檔案以外的檔案路徑
- 優化Android和Unity3D下的丟擲Lua異常操作
- 修復丟擲異常時導致記憶體洩漏和程式死鎖問題
- 修復iOS / OSX 平臺下使用Swift的@objc 匯出類無法找到問題
- 修復Android平臺下傳遞陣列中包含匯出型別物件時產生JNI棧溢位問題。
- 修復Android平臺下,從原生層傳入基礎型別陣列時無法轉換到lua中使用問題。
-
修復Android平臺下
LuaValue
無法識別傳入byte[]
型別問題。 -
修復Android平臺下,物件方法傳入
float
、int
、long
型別引數時無法識別問題。 - 修復Android平臺下,物件方法返回值為float時無法識別問題。
-
修復Android平臺下
LuaTuple
返回基礎型別值不正確問題 -
修復Android平臺下
LuaTuple
設定List
型別為返回值時獲取不到列表內容問題 - 修復Android平臺下迴圈呼叫方法時導致崩潰問題
- 修復Android平臺下建立類物件是記憶體洩漏問題
- 修復Unity3D下LuaValue轉換為object時,如果資料為陣列或者字典裡面的元素沒有解包問題。
LuaScriptCore模組專案正式成立
為了幫助廣大開發者完成更多的開發需要,該專案會以功能模組的方式來實現更有針對性的功能需求,目前處於建設階段,希望大家可以多提需求和建議,同時也希望大家能將自己做的模組共享出來,幫助專案更加完善和強大~