高级概念
iOS 运行时类型
NativeScript 提供了 interop
模块,用于处理原生 C 类型、指针、指针运算和内存。
使用 interop
创建指针
Pointer
类型允许你表示 void*。
使用构造函数
要使用给定偏移量创建一个新指针,请使用构造函数
const interop1 = new interop.Pointer(34)
通过从现有指针添加偏移量来创建指针
const interop2 = interop1.add(4)
通过从现有指针移除偏移量来创建指针
const interop3 = interop1.subtract(3)
interop API
Pointer.toNumber()
pointerInstance.toNumber()
将 Pointer
实例的值转换为数字。
adopt
interop.adopt(ptr: Pointer): AdoptedPointer
使指定的指针被采用。
free
interop.free(ptr: Pointer): void
释放指定未采用指针的内存。
sizeof
interop.sizeof(type: any): number
返回提供的类型的尺寸。type
可以是:类构造函数(Objective-C 接口),实例(Objective-C 接口的包装器),结构体构造函数,结构体实例,引用,协议,函数(对于 C 函数),基本类型
alloc
interop.alloc(size: number): AdoptedPointer
分配 size
字节的内存。
handleof
interop.handleof(instance: any): Pointer
JavaScript 对象可以获取对底层原生对象的引用。该实例可以表示类构造函数(对于 Objective-C 接口),实例(Objective-C 接口的包装器),结构体实例,引用,协议,函数(对于 C 函数)或块。
bufferFromData
interop.bufferFromData(data: NSData): ArrayBuffer
将 NSData 实例包装在 ArrayBuffer 中。
new Reference(value)
在 JavaScript value
周围创建一个新引用。类型的原生表示将在第一次在涉及封送处理的操作中使用该引用时确定。
new Reference(type: Type<T>, data: Pointer)
从具有给定类型的指针创建引用。
new Reference(type: Type<T>, value: any)
在某个 type
的 value
周围创建一个新引用。
new FunctionReference(func: T)
创建一个函数引用,该引用可以被封送处理为原生函数指针。只要原生代码需要该函数,JavaScript 引用就必须分配在内存中。
interop 类型
"void": Type<void>
bool: Type<boolean>
int8: Type<number>
uint8: Type<number>
int16: Type<number>
uint16: Type<number>
int32: Type<number>
uint32: Type<number>
int64: Type<number>
uint64: Type<number>
float: Type<number>
double: Type<number>
UTF8CString: Type<Reference<number>>
unichar: Type<string>
id: Type<any>
protocol: Type<any>
"class": Type<any>
selector: Type<string>
new StructType()
创建一个新的结构体实例。
new StructType (obj: T)
创建一个新的结构体实例,并使用提供的对象的字段对其进行初始化。
equals
someStructTypeIntastance.equals(left: T, right: T): boolean
检查两个结构体是否相等。
- 上一页
- iOS 封送处理
- 下一页
- Android 封送处理