предикат номера телефона в CNContactStore

Я создаю приложение в Swift. Я хотел бы сделать предикат с использованием phoneNumber (как String) и получить имя этого контакта, если он существует, из CNContactStore. Я могу довольно легко сделать предикат имени:

let pred = CNContact.predicateForContactsMatchingName(name: String)

Но есть ли способ сделать то же самое для PhoneNumber. Я, конечно, могу получить весь CNContactStore, прокрутить его и получить контакт. Но мне было интересно, есть ли лучший способ.


person Quentin Malgaud    schedule 07.11.2015    source источник
comment
Можно ли иметь дублирующиеся (одинаковые) контактные номера для двух разных людей?   -  person VRAwesome    schedule 07.11.2015
comment
это то, о чем я не подумал. Я предполагаю, что тогда CNContactStore даст мне более одного значения.   -  person Quentin Malgaud    schedule 07.11.2015
comment
@VRAwesome да, и очень часто. Примеры: я, моя жена и двое детей используют один и тот же номер домашнего телефона (хотя у каждого свой номер мобильного телефона). Мой контакт и еще несколько десятков других - имеют один и тот же рабочий номер телефона (основной телефон компании).   -  person Motti Shneor    schedule 02.06.2019


Ответы (2)


Короче говоря: вы не можете создать предикат для фильтрации по номеру телефона. Вы должны вытащить все контакты и повторить. ПРИМЕЧАНИЕ. Для любого заданного номера телефона он 1) может не существовать в контактах или 2) существовать более одного раза.

Ознакомьтесь с этим сообщением: https://forums.developer.apple.com/thread/19329

person David Vernon    schedule 11.11.2015

Для всех, кто увидит этот пост. В iOS11 Apple представила этот новый метод для получения контакта с номером телефона. https://developer.apple.com/documentation/contacts/cncontact/3020511-predicateforcontacts

См.: https://nshipster.com/ios-12/

person iWill    schedule 20.05.2019
comment
Теперь это должен быть назначенный выбранный ответ, с добавлением перед iOS SDK 11 вы должны перебирать все контакты и фильтровать телефонные номера, которые вы ищете. - person Motti Shneor; 02.06.2019