-
Notifications
You must be signed in to change notification settings - Fork 115
API文档_iOS OS X_Swift_LuaPointer
vimfung edited this page Nov 15, 2018
·
1 revision
lua中的light userdata
是一种可以指向原生对象的变量。它不负责变量内存的管理,使用单纯的指针引用。在LSC框架的原生代码中将此种变量视作一种数据类型并定义为LuaPointer
。该类型目的是将原生各种对象指针进行封装并转换为light userdata
。
LuaPointer
> NSObject
通过传入一个LSCUserdataRef
结构来初始化LuaPointer
对象。其中LSCUserdataRef
为结构体,用于表示lua种的userdata
数据类型,
该构造方法的作用是让light userdata
变量引用lua的另外一个userdata
变量。
init(userdata:LSCUserdataRef)
- ref:
userdata
数据结构,如果使用该结构体包含一个导出类型对象的指针,则在lua层也会对应地指向所引用的导出类型。
新创建的LuaPointer
对象
通过传入一个指针类型来初始化LuaPointer
对象。
init(ptr:UnsafeRawPointer)
- ptr: 变量指针。如果指针所指向的是一个导出类型,则lua层会对应指向所引用的导出类型;如果指向非导出类型,则被视作一个
userdata
变量。
新创建的LuaPointer
对象
用于返回包含的指针变量的LSCUserdataRef
结构体。需要注意的是,通过init(ptr:)
初始化传入指针会被封装到LSCUserdataRef
结构中,所以,该方法并非只有通过init(userdata:)
初始化对象才能调用。
func value() -> LSCUserdataRef
包含指针的LSCUserdataRef
结构