【发布时间】:2016-07-21 02:21:29
【问题描述】:
如果一个联系人只有 1 个电话号码,我想选择它。如果它有超过 1 个电话号码,那么我想显示详细的联系人卡片。
我正在使用以下方法,效果很好。
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person {
if (person != nil) {
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (ABMultiValueGetCount(phoneNumbers) == 1) {
//Do stuff to select phone number
}
}
}
然后,我实现了这个 Utility 方法来显示详细的联系人卡片:
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker didSelectPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier {
NSString* phone = nil;
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
if (ABMultiValueGetCount(phoneNumbers) > 0) {
CFIndex index = ABMultiValueGetIndexForIdentifier(phoneNumbers, identifier);
phone = (__bridge_transfer NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, index);
}
}
但是这个方法永远不会被调用? 如果我注释掉第一种方法,则调用第二种方法。我如何同时调用两者,或者有其他方法可以实现吗?
【问题讨论】:
标签: ios xcode ios8 xcode8 abpeoplepickerview