我想从数组创建 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?>!
作为第二个参数
我尝试这样做的一种方法是这样的:
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)
}
但是,这将创建 CFArray,其元素为 [rawPointer、垃圾、垃圾、垃圾的值],而不是 [0, 1, 2, 3]
我该怎么做这个UnsafeMutablePointer<UnsafeRawPointer?>!
参数超出数组?
最佳答案
你可以做到
let cfArray = array as CFArray
关于swift3 - swift 3 如何使用CFArrayCreate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39712478/