ios开发获取手机通讯录(最简单明了)
网上搜索了很多相关资料都写得过于复杂,可我们最常用的只需要用到姓名与电话号码,所以我整理了一下,只需要一个方法搞定!慢慢看吧1、导入AddressBook.framework先,然后引用 #import <AddressBook/AddressBook.h>
2、授权,如果已成功,读取通讯录数据到数组里,否则程序会崩溃
3、读取方法
- (NSArray *)getContacts
{
// 1、创建对象
ABAddressBookRef tmpAddressBook = ABAddressBookCreateWithOptions(nil, nil);
// 2、获取通讯录
CFArrayRef results = ABAddressBookCopyArrayOfAllPeople(tmpAddressBook);
// 3、遍历通讯录
NSMutableArray *array = ;
for (int i = 0; i < CFArrayGetCount(results); i++){
// 3.1、获取单条记录
ABRecordRef person = CFArrayGetValueAtIndex(results, i);
// 3.2、取记录中的名字
NSString *firstName = (__bridge NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSString *name = (__bridge NSString*)ABRecordCopyValue(person, kABPersonLastNameProperty);
if (firstName) name = ; // 名字拼接
// 3.3、取记录中的号码
ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty); // 所有号码
for (int k = 0; k < ABMultiValueGetCount(phones); k++) // 遍历取值
{
NSString * phone = (__bridge NSString*)ABMultiValueCopyValueAtIndex(phones, k); // 取出号码
NSDictionary *dict = @{name : phone}; // 拼接字典
; // 加入数组
}
}
return array;
}
页:
[1]