Swift中的惯用方法是将UnsafeMutablePointer <void>强制转换为非void类型的数组?

时间:2016-07-10 23:26:12

标签: swift unsafe-pointers

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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