Обзор: я пытаюсь получить номер телефона и полное имя, когда люди используют peoplePicker и нажимают на имя.Затем я хотел бы отобразить полное имя в текстовом поле и сохранить номер телефона в виде строки.Используя ph num и name, я намерен использовать это как уникальную идентификацию.Я не хочу использовать уникальный идентификатор ABRecord, потому что иногда у меня есть дубликаты на моих контактах, особенно когда я синхронизирую его с Google и т. Д. ...
Если я правильно понимаю, мне нужно использовать этот метод делегата
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
Используя вышеизложенное, я могу получить полное имя для отображения в текстовом поле как scuh
textField.text = ABRecordCopyCompositeName(person);
Но я не знаю, как получить номер телефона.Чтобы получить номер телефона, я должен использовать другой метод делегата:
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier
ABMultiValueRef phoneProperty = ABRecordCopyValue(person,property);
NSString *phone = (NSString *)ABMultiValueCopyValueAtIndex(phoneProperty,identifier);
Однако мне это не нравится, потому что тогда, когда пользователь нажимает на имя в адресной книге, он показываетдетали с номером телефона, адрес электронной почты и т. д., и пользователь должен нажать на номер телефона.То, что я хочу, это с первого экрана, пользователь нажимает на имя, и имя отображается в виде textField, а номер телефона сохраняется в виде строки где-то.