参考
iOS版本的差异对通讯录的影响
- 多字段属性因为ABAddressBookRef的先释放,导致无法获取
ABAddressBookRef abRef = ABAddressBookCreateWithOptions(NULL, NULL);
CFArrayRef cfPersons = ABAddressBookCopyArrayOfAllPeople(abRef);
NSArray *persons = CFBridgingRelease(cfPersons);
CFRelease(abRef);// 如果先释放,对于iOS8,则获取不到电话号码
ABRecordRef person = (__bridge ABRecordRef)(persons[0]);
ABMultiValueRef phoneNumbers = (ABMultiValueRef)ABRecordCopyValue(person, kABPersonPhoneProperty);
if (phoneNumbers) {
CFIndex count = ABMultiValueGetCount(phoneNumbers);
NSString *number = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);
CFRelease(phoneNumbers);
}