I'd like to create a CFArray from an Array
previously in Swift 2, I'm able to do this:
let array = [0, 1, 2, 3]
let arrayPointer = UnsafeMutablePointer<UnsafePointer<Void>>(array)
let cfArray = CFArrayCreate(kCFAllocatorDefault, arrayPointer, array.count, nil)
now in Swift 3 CFArrayCreate is expecting UnsafeMutablePointer<UnsafeRawPointer?>!
as the second parameter
one way I attempted to do it is as such:
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)
}
however this will create CFArray with element of [value of rawPointer, garbage, garbage, garbage] instead of [0, 1, 2, 3]
how would I go about making this UnsafeMutablePointer<UnsafeRawPointer?>!
parameter out of the array ?