2011-01-14 6 views
1
에 유저 데이터를 반환 호출 C 방법은

임 LuaObjcBridge을 사용하고이 같은 루아의 메소드 호출 해요 : 목표 - C에서루아 : 루아

local position = owner:position() 

을이 X와 Y있는 CGPoint 구조체를 반환 bridge가 Userdata로 변환됩니다. 그래서 CGPoint struct -> Lua userdata. 루아에서 어떻게 UserData로부터 X와 Y 값에 접근 할 수 있습니까?

+1

저는 LuaObjcBridge를 사용하지 않았지만 루아와 커스텀 브리지에 대해서는 상당한 경험이 있습니다. 코드를 살펴 보았고 구조체 멤버에 대한 액세스를 허용하는 메타 테이블의 지원이 표시되지 않습니다. 메타 테이블은 전체 객체에 대한 객관적인 C 메소드를 연결하려고 시도합니다. position.x 또는 position.y를 시도 할 수는 있지만 작동하지는 않습니다. 이 경우 사용자 데이터에서 값을 추출하는 자체적 인 브리징 C 함수를 작성할 수 있습니다. –

+0

나는 이것을 C++로 직접 작성하여 오랜 답변을 썼다. 나는 그것이 당신이 요구하는 것이 아니라 그것을 알고 있습니다. 그러나 그것은 도움이 될 것입니다. http://stackoverflow.com/questions/3481856/sending-variable-pointers-back-and-forth-between-c-and-lua/3506654#3506654 유일한 차이점은 클래스가 작성되는 방식이 C++ obj-c –

답변

1

는 다음을 수행해야합니다

  • 는 유저 데이터에서 작동 방법을 포함하는, 메타 테이블 정의
  • 는 유저 데이터에 __index 필드와 같은 메타 테이블을 설정 유저 데이터에
  • 설정 메타 테이블

또는 :

  • 등 유저 데이터
  • 에서 작동하는 몇 가지 방법은 그 자체로 아무것도 할 수 없습니다

보기 http://www.lua.org/pil/28.1.html

유저 데이터에 루아에 노출, 당신은 그것으로 뭔가를 할 방법을 추가해야합니다.