配列から CFArray を作成したい
以前はSwift 2で、これを行うことができました:
let array = [0, 1, 2, 3]
let arrayPointer = UnsafeMutablePointer<UnsafePointer<Void>>(array)
let cfArray = CFArrayCreate(kCFAllocatorDefault, arrayPointer, array.count, nil)
Swift 3 では、CFArrayCreate がUnsafeMutablePointer<UnsafeRawPointer?>!
2 番目のパラメータとして期待されています
私がそれをやろうとした1つの方法は次のとおりです:
let array: [Int] = [0, 1, 2, 3]
var rawPointer: UnsafeRawPointer? = UnsafeRawPointer(array)
let cfArray = withUnsafeMutablePointer(to: &rawPointer) { ppArray in
CFArrayCreate(kCFAllocatorDefault, ppArray, array.count, nil)
}
ただし、これは [0, 1, 2, 3] の代わりに [rawPointer の値、ガベージ、ガベージ、ガベージ] の要素を持つ CFArray を作成します。
UnsafeMutablePointer<UnsafeRawPointer?>!
このパラメーターを配列から作成するにはどうすればよいですか?