iOS9之前使用AddressBook,AddressBookUI框架
iOS9之后使用Contacts,ContactsUI框架
因为只用到了选择联系人电话号码的功能,所以选择了ContactsUI。
导入头文件
#import <ContactsUI/ContactsUI.h>
#pragma mark --- 调用系统通讯录
- (void)selectContact
{
// 1.创建选择联系人的控制器
CNContactPickerViewController *contactVc = [[CNContactPickerViewController alloc] init];
// 2.设置代理
contactVc.delegate = self;
// 3.弹出控制器
[self presentViewController:contactVc animated:YES completion:nil];
}
#pragma mark --- CNContactPickerDelegate
// 1.当选中某一个联系人时会执行该方法
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContact:(CNContact *)contact{
// 1.获取联系人的姓名
NSString *lastname = contact.familyName;
NSString *firstname = contact.givenName;
// 2.获取联系人的电话号码,不展开详情
NSArray *phoneNums = contact.phoneNumbers;
此处获取的是该联系人的第一个号码
CNLabeledValue *labeledValue = phoneNums[0]
CNPhoneNumber *phoneNumer = labeledValue.value;
NSString * phoneValue = phoneNumer.stringValue;
NSLog(@"%@", phoneValue);
遍历所有的号码
for (CNLabeledValue *labeledValue in phoneNums) {
CNPhoneNumber *phoneNumer = labeledValue.value;
NSString *phoneValue = phoneNumer.stringValue;
NSLog(@"%@",phoneValue);
}
}
// 2.当选中某一个联系人的某一个属性时会执行该方法(展开详情)
- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty{
}
// 3.点击了取消按钮会执行该方法
- (void)contactPickerDidCancel:(CNContactPickerViewController *)picker{
}