如何获取 ABAddressBook
源的名称来显示它?
(我知道枚举 kABSourceTypeLocal
, kABSourceTypeExchange
, ...)
我指的不是使用 ABRecordCopyValue
(source,ABSourceNameProperty
) 获得的源类型名称,而是真实名称在 Apple 的 Contacts-App 中显示为表格部分,例如:
“Exchange Google”或“iCloud”
最佳答案
如果您查看 ABSource Reference ,您可以看到它们有一个名为 kABSourceNameProperty
的属性,其中包含“源名称”。以下是获取所有源名称的方法:
NSMutableArray *sourceNames = [[NSMutableArray alloc] init];
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef sourcesArray = ABAddressBookCopyArrayOfAllSources(addressBook);
for (CFIndex i = 0; i < CFArrayGetCount(sourcesArray); i++) {
ABRecordRef source = (ABRecordRef)CFArrayGetValueAtIndex(sourcesArray, i);
CFStringRef sourceName = (CFStringRef)ABRecordCopyValue(ABRecordGetRecordID(source, kABSourceNameProperty);
if(sourceName){
[sourceNames addObject: (__bridge_transfer NSString *)sourceName];
}
}
CFRelease(sourcesArray);
CFRelease(addressBook);
希望这对您有所帮助!
关于objective-c - AB 地址簿 ABSourceName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494897/