iOS 9 中,苹果介绍了新的 Contacts framework。允许用户使用 Objective-C 的 API 和设备的通讯录进行交互,同样适用于 Swift 语言。比起之前通过 AddressBook framework 来读取联系人信息来说,这是一个巨大的进步。因为 AddressBook framework 没有 Objective-C 的 API,非常难用,用 Swift 写的时候更是痛苦。现在就有一份Object-OC的版本。
第一步效果图:
第二部:我们看一些关键的代码。
1、创建获取数据的对象。
CNContactStore * ContactStore;
2、创建一个代理,已提供全工程。
// 初始化对象
-(PhoneBookManager*)PhoneBookShare{
static PhoneBookManager * Manger = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
Manger = [[self class] alloc];
});
return Manger;
}
-(BOOL)ExamineGetPhoneBookOfJurisdiction{
// 获取枚举类型,是否允许获取权限的状态
CNAuthorizationStatus AuthorizationStatus = [CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts];
if (AuthorizationStatus == CNAuthorizationStatusNotDetermined) {
return NO;
}else{
return YES;
}
}
NSArray * TypeArray = @[CNContactGivenNameKey,CNContactFamilyNameKey,CNContactPhoneNumbersKey,CNContactEmailAddressesKey,CNContactBirthdayKey,CNContactDepartmentNameKey];
5、进行数据的请求
CNContactFetchRequest * Request = [[ CNContactFetchRequest alloc]initWithKeysToFetch