许多 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
}