Получение контактов: Не удается преобразовать значение типа ‘CNLabeledValue?’ в ожидаемый тип аргумента ‘Строка’

#swift #contacts #cncontact

Вопрос:

Я хочу получить контакты с телефона пользователя, затем сравнить номера телефонов с номерами телефонов всех моих пользователей в базе данных, чтобы показать пользователю все его контакты, которые также используют приложение, моя проблема в функции fetchContacts() :

 static func fetchContacts() -> [CNContact] {
    print("Attempting to fetch contacts...")
    var fetchedContacts = [Caesar_Contact]()
    
    let store = CNContactStore()
    
    store.requestAccess(for: .contacts) { (granted, err) in
        if let err = err {
            print("Failed to request access: ",err)
            return
        }
        
        if granted {
            print("Access granted")
            
            let keys = [CNContactGivenNameKey, CNContactPhoneNumbersKey]
            let request = CNContactFetchRequest(keysToFetch: keys as [CNKeyDescriptor])
            
            do {
                
            
            try store.enumerateContacts(with: request, usingBlock: { (contact, stopPointerIfYouWantToStopEmurating) in
                
                print(contact.givenName)
                
                var newContact = Caesar_Contact(name: contact.givenName, number: contact.phoneNumbers.first) //MARK: - Here is the error (phoneNumber.first)
                fetchedContacts.append(newContact)
                
            })
            } catch let err {
                print("Failed to enumerate contacts: ", err)
                
            }
        } else {
            print("Access denied")
        }
    }
    return fetchedContacts
}
    
    
 

Ошибка: Не удается преобразовать значение типа «CNLabeledValue?» в ожидаемый тип аргумента «Строка»

Я пробовал такие вещи, как: как? Строка, (значение как? Строка) и т. Д. … но ничего не получалось. Может ли кто-нибудь сказать мне, в чем проблема и что я могу сделать? Заранее спасибо!

Комментарии:

1. developer.apple.com/documentation/contacts/cnlabeledvalue/… ? contact.phoneNumbers.first.label ?