2011-01-14 70 views
1
調用C方法

進出口使用LuaObjcBridge和我打電話從Lua這樣的方法:的Lua:返回用戶數據到Lua

local position = owner:position() 

在Objective-C這個返回一個CGPoint結構與X和Y其中橋轉換成用戶數據。所以CGPoint結構 - > Lua userdata。在Lua中,我如何訪問用戶數據中的X和Y值?

+1

我還沒有使用過LuaObjcBridge,但我對Lua和自定義橋有相當的經驗。我查看了代碼,並且在metatable中看不到支持訪問結構成員的任何支持。看起來,metatable只會嘗試爲完整對象架設客觀的C方法。您可以嘗試position.x或position.y,但它看起來不像那些工作。在這種情況下,您可以編寫自己的橋接C函數,從用戶數據中提取值。 – 2011-01-14 03:09:47

回答

1

您需要:

  • 定義元表,包含對用戶數據進行操作的方法
  • 對用戶數據
  • 集元表
  • 設置相同的metatable的__index場對用戶數據

或:

  • s等一些對用戶數據
  • 操作的方法讓他們接觸的Lua

看看http://www.lua.org/pil/28.1.html

用戶數據本身不能做任何事情,你需要補充的是用它做什麼方法。