Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Lua:调用将userdata返回给Lua的c方法_Objective C_Lua - Fatal编程技术网

Objective c Lua:调用将userdata返回给Lua的c方法

Objective c Lua:调用将userdata返回给Lua的c方法,objective-c,lua,Objective C,Lua,我正在使用LuaObjcBridge,我正在从Lua调用一个方法,如下所示: local position = owner:position() 在objective-c中,它返回一个带有X和Y的CGPoint结构,桥接器将其转换为Userdata。所以CGPoint struct->Lua userdata。在Lua中,如何从Userdata访问X和Y值?您需要: 定义元表,其中包含对userdata进行操作的方法 在userdata上设置元表 设置与userdata上的_索引字段相同的元

我正在使用LuaObjcBridge,我正在从Lua调用一个方法,如下所示:

local position = owner:position()
在objective-c中,它返回一个带有X和Y的CGPoint结构,桥接器将其转换为Userdata。所以CGPoint struct->Lua userdata。在Lua中,如何从Userdata访问X和Y值?

您需要:

  • 定义元表,其中包含对userdata进行操作的方法
  • 在userdata上设置元表
  • 设置与userdata上的_索引字段相同的元表
或:

  • 设置一些对userdata进行操作的方法
  • 把他们暴露在Lua面前

userdata本身不能做任何事情,您需要添加一些方法来处理它。

您需要:

  • 定义元表,其中包含对userdata进行操作的方法
  • 在userdata上设置元表
  • 设置与userdata上的_索引字段相同的元表
或:

  • 设置一些对userdata进行操作的方法
  • 把他们暴露在Lua面前


userdata本身不能做任何事情,您需要添加一些方法来处理它。

我没有使用LuaObjcBridge,但我对Lua和自定义桥有相当多的经验。我查看了代码,但在元表中没有看到允许访问结构成员的任何支持。看起来,元表只是试图为完整对象桥接objective C方法。您可以尝试position.x或position.y,但这些方法似乎不起作用。在这种情况下,您可以编写自己的桥接C++函数,这些函数将从USER数据中提取值。我知道这不完全是你想要的,但它可能会有所帮助。唯一的区别是类的组成方式是C++ + Obji CI没有使用LuaObjcBo桥,但是我有相当多的Lua和自定义桥的经验。我查看了代码,但在元表中没有看到允许访问结构成员的任何支持。看起来,元表只是试图为完整对象桥接objective C方法。您可以尝试position.x或position.y,但这些方法似乎不起作用。在这种情况下,您可以编写自己的桥接C++函数,这些函数将从USER数据中提取值。我知道这不完全是你想要的,但它可能会有所帮助。唯一的区别是类组成的方式是C++与Obj-C。