"Двоичный оператор" <"нельзя применить к двум операндам CFIndex" - выбор номера телефона из ABMultiValue (адресная книга)

Я пытаюсь использовать AddressBook и AddressBookUI, чтобы показать вид адресной книги, где пользователь может затем нажать на контакт, а затем номер телефона, и приложение получит номер телефона. У меня проблема, когда я перебираю ABMultiValue, пытаясь найти запись с выбранным идентификатором - ошибка "Binary operator '<' cannot be applied to two CFIndex operands"поднят на линии с for петля (строка 13).

Я вставил приведенный ниже код - кто-нибудь знает, почему это происходит / что я могу сделать, чтобы это исправить? Спасибо!

func peoplePickerNavigationController(peoplePicker: ABPeoplePickerNavigationController!, didSelectPerson person: ABRecord!, property: ABPropertyID, identifier: ABMultiValueIdentifier) {
    self.peoplePickerNavigationController(peoplePicker, shouldContinueAfterSelectingPerson: person, property: property, identifier: identifier)

    // Get name
    //    If wanting a composite name including prefix, suxif, title, both names etc:
    //    NSString *contactName = CFBridgingRelease(ABRecordCopyCompositeName(person));
    let contactName = ABRecordCopyValue(person, kABPersonFirstNameProperty)

    // Get number
    var number = String()
    let numbers = ABRecordCopyValue(person, kABPersonPhoneProperty)

    for var index:CFIndex = 0; index < ABMultiValueGetCount(numbers); ++index{
        if identifier = ABMultiValueGetIdentifierAtIndex(numbers, index) {
            number = ABMultiValueCopyValueAtIndex(numbers, index)
        }
    }
}

1 ответ

Решение

Просто цикл, используя нормальные числа:

for index in 0 ..< ABMultiValueGetCount(numbers) {
Другие вопросы по тегам