- 实现步骤
// 1. 创建选择联系人的控制器 ABPeoplePickerNavigationController *ppnc = [[ABPeoplePickerNavigationController alloc] init]; // 2. 设置代理(用来接收用户选择的联系人信息) ppnc.peoplePickerDelegate = self; // 3. 弹出联系人控制器 [self presentViewController:ppnc animated:YES completion:nil]; // 4. 实现代理 // 1. 选中某个联系人时调用 - (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person { } // 2. 选中某个联系人某个属性时调用 - (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier { } // 3. 点击了取消按钮会执行该方法 - (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker { } // 5. 在对应的代理方法中获取联系人信息 // 1. 获取选中联系人的姓名(姓lastname和名firstname) CFStringRef firstname = ABRecordCopyValue(person, kABPersonFirstNameProperty); CFStringRef lastname = ABRecordCopyValue(person, kABPersonLastNameProperty); NSString *firstName = (__bridge_transfer NSString *)(firstname); NSString *lastName = (__bridge_transfer NSString *)(lastname); NSLog(@"%@ %@", firstName, lastName); // 2. 获取联系人的电话号码 ABMultiValueRef phones = ABRecordCopyValue(person, kABPersonPhoneProperty); CFIndex count = ABMultiValueGetCount(phones); for (CFIndex i = 0; i < count; i++) { NSString *phoneLabel = (__bridge_transfer NSString *)ABMultiValueCopyLabelAtIndex(phones, i); NSString *phoneValue = (__bridge_transfer NSString *)ABMultiValueCopyValueAtIndex(phones, i); NSLog(@"label : %@ value : %@", phoneLabel, phoneValue); } // 3. 释放不再使用的对象 CFRelease(phones);
获取通讯录-AddressBookUI(OC)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1.创建选择联系人的界面 ABPeoplePickerNavigationController*ppad = [[...