iOS9之后AddressBook框架被弃用 改为Contacts框架
创建一个 CNContactStore 对象,这个类是 Contacts 框架中最常用的一个类,这个类表示设备中通讯录的数据库,主要负责设备中通讯录的数据库与真实数据库之间的通信。
在使用Contacts 框架时,需要在工程中导入 Contacts.framework 和 ContactsUI.framework 这两个库
导入头文件
#import <Contacts/Contacts.h>
#import <ContactsUI/ContactsUI.h>
-(void)getAddressBookArr{
self.contacStore=[[CNContactStore alloc]init];
//创建请求时,需要告诉请求对象,在检索时要返回哪些属性,否则后面使用未检索的属性程序会崩
CNContactFetchRequest * request = [[CNContactFetchRequest alloc]initWithKeysToFetch:@[CNContactFamilyNameKey,CNContactGivenNameKey,CNContactPhoneNumbersKey]];
//使用联系管理器开始请求,并可以在block中进行相应的遍历和处理
[self.contacStore enumerateContactsWithFetchRequest:request error:nil usingBlock:^(CNContact * _Nonnull contact, BOOL * _Nonnull stop) {
if (contact.phoneNumbers.count>1) {
NSString *name=[NSString stringWithFormat:@"%@%@",contact.familyName,contact.givenName];
NSDictionary *newsDic=[NSDictionary dictionaryWithObjectsAndKeys:@{@"name":name},@{@"phone":[contact.phoneNumbers[0].value stringValue]}, nil];
[self.addressBookArr addObject:newsDic];
}
}];
}
代码很简单 大家看下就懂
Contacts框架详解:http://wenku.baidu.com/link?url=YYbO7207N5QMHGg0riD58JPl3FUjq0iCQmXkRhVF6uhbbIVevK1K8eX57FDtMpkSq9MLYaR2jRXlL5-1wnpN3mFi1Eh_AxzrtW9h9kR_FX3