In Swift, how to convert CFStringRef [] and CFTypeRef [] to CMutablePointer <COpaquePointer>?
In Swift, how to convert CFStringRef[] and CFTypeRef[] to CMutablePointer< COpaquePointer > ?
I would call CFDictionaryCreate from Swift. I defined:
var keys: CFStringRef[] = [kCGImageSourceCreateThumbnailWithTransform, kCGImageSourceCreateThumbnailFromImageIfAbsent, kCGImageSourceThumbnailMaxPixelSize, kCGImageSourceCreateThumbnailFromImageAlways] var values: CFTypeRef[] = [kCFBooleanTrue, kCFBooleanTrue, imageSize, kCFBooleanTrue] CFDictionaryCreate(nil, keys, values, 4, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks) but donโt know how to specify keys and values โโin the above call.
+7
ilia
source share1 answer
I can make the compiler stop complaining by creating unsafe pointers for you, but I havenโt mentioned the use of CFDictionary in my depths.
import ImageIO let dictionayKeyCB = UnsafePointer<CFDictionaryKeyCallBacks>() let valueKeyCB = UnsafePointer<CFDictionaryValueCallBacks>() let keys: [CFStringRef] = [kCGImageSourceCreateThumbnailWithTransform, kCGImageSourceCreateThumbnailFromImageIfAbsent, kCGImageSourceThumbnailMaxPixelSize, kCGImageSourceCreateThumbnailFromImageAlways] let keysPointer = UnsafeMutablePointer<UnsafePointer<Void>>.alloc(1) keysPointer.initialize(keys) let values: [CFTypeRef] = [kCFBooleanTrue, kCFBooleanTrue, kCFBooleanTrue, kCFBooleanTrue] let valuesPointer = UnsafeMutablePointer<UnsafePointer<Void>>.alloc(1) valuesPointer.initialize(values) CFDictionaryCreate(kCFAllocatorDefault, keysPointer, valuesPointer, 4, dictionayKeyCB, valueKeyCB) +5
sketchyTech
source share