我想获取某个iPhone的所有联系人的列表。
我检查了Address Book
参考,我可能遗漏了一些东西,但我没有看到它提供了一个获取联系人列表的方法。
发布于 2010-09-20 07:19:58
也许ABPerson
函数ABAddressBookCopyArrayOfAllPeople可以做到这一点?
ABAddressBookRef addressBook = ABAddressBookCreate( );
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );
for ( int i = 0; i < nPeople; i++ )
{
ABRecordRef ref = CFArrayGetValueAtIndex( allPeople, i );
...
}
发布于 2013-07-27 12:18:19
使用此代码显示所有姓名+姓氏+电话枚举号码(iOS 6)。也可以在模拟器上工作:
CFErrorRef *error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex numberOfPeople = ABAddressBookGetPersonCount(addressBook);
for(int i = 0; i < numberOfPeople; i++) {
ABRecordRef person = CFArrayGetValueAtIndex( allPeople, i );
NSString *firstName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonFirstNameProperty));
NSString *lastName = (__bridge NSString *)(ABRecordCopyValue(person, kABPersonLastNameProperty));
NSLog(@"Name:%@ %@", firstName, lastName);
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
for (CFIndex i = 0; i < ABMultiValueGetCount(phoneNumbers); i++) {
NSString *phoneNumber = (__bridge_transfer NSString *) ABMultiValueCopyValueAtIndex(phoneNumbers, i);
NSLog(@"phone:%@", phoneNumber);
}
NSLog(@"=============================================");
}
发布于 2010-09-20 07:24:47
确保您有正确的导入
#import <AddressBook/AddressBook.h>
然后,您可以使用以下命令获取一个包含所有联系人的CFArray对象
CFArrayRef ABAddressBookCopyArrayOfAllPeople (ABAddressBookRef addressBook);
https://stackoverflow.com/questions/3747844
复制相似问题