在 Objective-C
中,有两个指针数组声明:
NSArray<MTKMesh *> *mtkMeshes;
NSArray<MDLMesh *> *mdlMeshes;
我正在努力声明 Swift 3.0
中的等价物。
最佳答案
MTKMesh
和 MDLMesh
是类(引用类型)。一个变量
Swift 中 MTKMesh
类型的是对对象实例的引用,
即在 Objective-C 中什么是 MTKMesh *
类型的变量。
因此你可以简单地声明
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
前两个数组元素引用同一个对象实例,
最后一个数组元素引用了不同的实例。
(===
是 "identical-to" operator )。
关于objective-c - 如何将 Objective-C 指针数组转换为 Swift?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40562992/