概要: 人々が peoplePicker を使用して名前をクリックしたときに、電話番号と氏名を取得しようとしています。次に、テキストフィールドに氏名を表示し、電話番号を文字列として保存したいと思います。Ph num と名前を使用して、一意の識別として使用するつもりです。ABRecord の一意の ID を使用したくありません。特に Google と同期するときに連絡先が重複することがあるためです。
私の理解が正しければ、このデリゲート メソッドを使用する必要があります
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
上記を使用して、フル ネームをテキスト フィールドに scuh として表示できます。
textField.text = ABRecordCopyCompositeName(person);
しかし、私はph番号を取得する方法がわかりません。ph 番号を取得するには、別のデリゲート メソッドを使用する必要があります。
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier
ABMultiValueRef phoneProperty = ABRecordCopyValue(person,property);
NSString *phone = (NSString *)ABMultiValueCopyValueAtIndex(phoneProperty,identifier);
ただし、ユーザーがアドレス帳の名前をクリックすると、ph 番号、電子メールなどの詳細が表示され、ユーザーは ph 番号をクリックする必要があるため、これは好きではありません。私が欲しいのは、最初の画面から、ユーザーが名前をクリックすると、名前が textField として表示され、ph 番号が文字列としてどこかに保存されることです。