我必須在Swift中使用CFDictionaryCreate
方法(documentation link)。如何傳遞UnsafeMutablePointer類型的參數<UnsafePointer <Void>>
我很難正確初始化輸入參數以便傳遞UnsafeMutablePointer<UnsafePointer<Void>>
類型的參數(鍵和值)。
這裏是我的代碼:
var font_name: CFStringRef! = CFStringCreateWithCString(nil, "Courier", kCFStringEncodingASCII)
var font: CTFontRef! = CTFontCreateWithName(font_name, 25.0, nil)
var keys: [UnsafePointer<Void>] = ???? // how to intialize with "kCTFontAttributeName"
var values: [UnsafePointer<Void>] = ???? // how to intialize with "font" variable
var keyCallBacks = kCFTypeDictionaryKeyCallBacks
var valueCallBacks = kCFTypeDictionaryValueCallBacks
var font_attributes: CFDictionaryRef! = CFDictionaryCreate(kCFAllocatorDefault, &keys, &values, sizeofValue(keys), &keyCallBacks, &valueCallBacks)
var attr_string: CFAttributedStringRef! = CFAttributedStringCreate(nil, "hello", font_attributes)
你確定,你不能用斯威夫特字典呢?一個Swift的'[NSString:AnyObject]'字典會自動橋接到'NSDictionary'(反之亦然),'NSDictionary'是免費橋接'CFDictionary'。 - 也許你應該展示你的具體案例。 –
@MartinR,我已經添加了代碼。我不確定是否可以在上面的代碼中使用NSDictionary。你能幫我一下嗎? – san
你需要什麼'font_attributes'字典? –