我在AddressBook上做了一些測試,儘管我可以獲取我正在尋找的數據,但我很好奇它是如何傳遞的。特別是CFDictionaryRef。當我將其轉換爲NSDictionary並記錄到控制檯時,我只是得到一個字符串值,而不是一個key = value對。如果我嘗試記錄所有密鑰,則我的測試應用會中斷。iOS:有人可以爲我解釋CFDictionaryRef嗎?
下面是我使用的代碼片段:
if ([contactName isEqualToString:ownerName]) {
//get reference to their email addresses
ABMultiValueRef contactEmails = ABRecordCopyValue(thisPerson, kABPersonEmailProperty);
//loop
for (NSUInteger e = 0; e < ABMultiValueGetCount(contactEmails); e++){
CFDictionaryRef thisPersonCFEmailDict = ABMultiValueCopyValueAtIndex(contactEmails, e);
NSDictionary* thisPersonEmailDict = (__bridge NSDictionary*)thisPersonCFEmailDict;
NSLog(@"%@", [thisPersonEmailDict allKeys]);
}
}
是什麼讓你覺得'ABMultiValueCopyValueAtIndex()'返回一個'CFDictionaryRef'?它被記錄爲返回'CFTypeRef',它是'id'的CoreFoundation等價物。 –
什麼都沒有,我正處於學習曲線階段,只看到我能做什麼。我正在研究這個主題的一些帖子,並拉動一些片段,看看有什麼工作。感謝你的回答,這清除了我的困惑。 – PruitIgoe