1
連絡先に電話番号が1つしかない場合は、それを選択します。 1つ以上の電話番号を持っている場合は、詳細な連絡先カードを表示します。連絡先に電話番号が2つ以上ある場合は詳細な連絡先カードを表示
私は以下の方法を使用していますが、これはうまくいきます。
- (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
}
}
}
その後、私は、詳細な連絡先カードを表示するために、このユーティリティメソッドを実装します。
- (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);
}
}
をしかし、このメソッドが呼び出されることは決してありませんか? 最初のメソッドをコメントアウトすると、2番目のメソッドが呼び出されます。どのように私は両方を呼び出すことができる、またはこれを達成する別の方法はありますか?