2011-01-14 74 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

用户数据本身不能做任何事情,你需要补充的是用它做什么方法。