unsafe 指针 - Swift 中将 UnsafeMutablePointer 类型转换为<Void>非 void 类型数组的惯用方式?



许多 C/Obj-C API 处理指向 void 的指针。 在 swift 中,这些类型通常表示为 UnsafeMutablePointer 或 UnsafePointer (对于 const void*)。 在 Swift 中,将这些值重新解释为打包的数据数组(如 [Float] 或 [UInt8])的典型方法是什么?

最简单的方法是将其转换为指针UInt8

let buffer = UnsafeMutablePointer<UInt8>(MTLBuffer.contents())

您可以使用下标运算符访问它:

for index in 0 ..< bufferSize {
    let foo = buffer[index]      // foo is `UInt8` type
    ...
    buffer[index] = bar
}

最新更新