如何将Objective-C指针数组转换为Swift?

时间:2016-11-12 12:48:45

标签: objective-c swift nsarray swift3

Objective-C中,这些是指针数组的两个声明:

NSArray<MTKMesh *> *mtkMeshes;
NSArray<MDLMesh *> *mdlMeshes;

我正在努力宣布Swift 3.0中的等价物。

1 个答案:

答案 0 :(得分:2)

MTKMeshMDLMesh(引用类型)。一个变量 Swift中的MTKMesh类型是对象实例的引用, 即什么类型MTKMesh *的变量在Objective-C中。

因此您可以简单地声明

var mtkMeshes: [MTKMesh] = []
var mdlMeshes: [MDLMesh] = []

数组的每个元素都是对对象实例的引用:

let mesh1 = MDLMesh()
let mesh2 = MDLMesh()
mdlMeshes.append(mesh1)
mdlMeshes.append(mesh1)
mdlMeshes.append(mesh2)

print(mdlMeshes[0] === mdlMeshes[1]) // true
print(mdlMeshes[0] === mdlMeshes[2]) // false

前两个数组元素引用相同的对象实例,即 last数组元素引用不同的实例。 (==="identical-to" operator)。