Цель iOS C: получить выбранный пользователем номер телефона из CNContactProperty в виде строки

Мой вопрос в основном такой же, как вопрос здесь:

iOS Swift: получить выбранный пользователем номер телефона из CNContactProperty в виде строки

КОТОРЫЙ БЫЛ ОШИБОЧНО ПОМЕЧЕН КАК ДУБЛИКАТ БЕЗ РЕШЕНИЙ (причина указана в этом посте).

Я отчаянно хочу узнать ответ, он должен быть очень простым, потому что я вижу, что Skype использует точно такой же API для получения контактов, и я хочу знать, как это сделать.

Swift или Objective C не важны, важна только идея, спасибо.


person steven    schedule 14.03.2017    source источник


Ответы (1)


После нескольких часов попыток я понял это сам:

Сначала нам нужно получить свойство «идентификатор» CNContactProperty, а затем выбрать выбранный номер, соответствующий ему.

- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty {
    CNContact *contact = contactProperty.contact;
    NSString *identify = contactProperty.identifier;//pick the number according to this id!!!
    _lastDisplay = @"";
    for (CNLabeledValue<CNPhoneNumber*>* number in contact.phoneNumbers) {
        if ([number.identifier isEqualToString:identify]) {
            _lastDisplay = ((CNPhoneNumber *)number.value).stringValue;
        }
    }
}

Оставьте это здесь, если кому-то это нужно.

person steven    schedule 14.03.2017