2014-06-12 5 views
7

Swift'de CFStringRef[] ve CFTypeRef[]'u CMutablePointer<COpaquePointer>'a nasıl dönüştürebilirim?Swift'de CFStringRef [] ve CFTypeRef [] 'ı CMutablePointer <COpaquePointer> öğesine nasıl dönüştürebilirim?

Swift'den CFDictionaryCreate numaralı telefonu aramak istiyorum. Tanımladım: Yukarıdaki çağrıda anahtar ve değerlerin nasıl belirtileceğini bilmiyorum, ancak .

+0

Bu referansa baktığınızı düşünüyor musunuz? https://developer.apple.com/library/prerelease/ios/documentation/CoreFoundation/Reference/CFDictionaryRef/index.html#//apple_ref/c/func/CFDictionaryCreate – Jiaaro

+0

Hey, cevabı buldunuz mu? – san

cevap

5

Derleyici, sizin için güvenli olmayan işaretçiler oluşturarak şikayet etmeyi bırakabilir, ancak CFDictionary kullanımının geri kalanında derinlikten çıkıyorum.

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)