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