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

标签 objective-c swift nsarray swift3

Objective-C 中,有两个指针数组声明:

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

我正在努力声明 Swift 3.0 中的等价物。

最佳答案

MTKMeshMDLMesh(引用类型)。一个变量 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/

相关文章:

iphone - 我需要将两个 NSArray/NSDictionaries 组合在一起

ios - 添加到 NSMutableArray 时出错

ios - 为具有 CenterX 约束的 View 设置自定义高度

ios - 在搜索时处理多个请求 Alamofire

objective-c - 如何使用 AVAssetReader 添加到 AudioBufferList?

ios - 如何在执行 segue 期间使用 UIActivityIndi​​catorView?

ios - 在 Swift 中将日期转换为 "/Date(631148400000+0100)/"字符串

ios - 从随机索引中选取数组中的对象时如何防止重复

ios - UISearchController 搜索栏在显示时向下移动

objective-c - 适用于 iOS 的 Luma Key(从图像创建 alpha 蒙版)