- 实现步骤
// 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 = [[...