如何获取ABAddressBook
源名称以显示它?(我知道枚举kABSourceTypeLocal
,,kABSourceTypeExchange
...)
我不是指您使用ABRecordCopyValue
(source, ABSourceNameProperty
)获得的源类型名称,而是在 Apple 的 Contacts-App 中作为表格部分显示的真实名称,例如:“Exchange Google”或“iCloud”
如何获取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);
希望这可以帮助!