需要先导入两个系统的类库 AddressBookUI.framework和AddressBook.framework
在需要调用的类库里面导入两个头文件
#import<AddressBookUI/AddressBookUI.h>
#import<AddressBook/AddressBook.h>
ABPeoplePickerNavigationController * ab = [[ABPeoplePickerNavigationControlleralloc] init];
ab.peoplePickerDelegate =self;
[selfpresentViewController:ab animated:YEScompletion:nil];
利用ABPeoplePickerNavigationController 的代理方法获取通讯录中所选择联系人的姓名和电话 ,其他也可以获取 暂时没设置
-(void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person{
NSString *firstName = CFBridgingRelease(ABRecordCopyValue(person, kABPersonFirstNameProperty));
firstName = firstName != nil ? firstName : @"";
NSString *lastName = CFBridgingRelease(ABRecordCopyValue(person, kABPersonLastNameProperty));
lastName = lastName != nil ? lastName : @"";
nameStr = [NSString stringWithFormat:@"%@%@",lastName,firstName];
ABMutableMultiValueRef tmpPhones = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSArray *arr = CFBridgingRelease(ABMultiValueCopyArrayOfAllValues(tmpPhones));
for (int i = 0; i < arr.count; i++) {
NSString *name = [arr objectAtIndex:i];
NSString *phoneNumberLabel = CFBridgingRelease(ABMultiValueCopyLabelAtIndex(tmpPhones, i));
if ([phoneNumberLabel isEqualToString:(NSString*)kABPersonPhoneMobileLabel]) {
phoneNum = name;
}
}
NSLog(@"%@ %@",nameStr,phoneNum);
[peoplePicker dismissViewControllerAnimated:YES completion:nil];
}