Как преобразовать CNPhoneNumber в строку в swift4? - PullRequest
0 голосов
/ 31 мая 2018

Я использую этот код для получения номера контакта из приложения контактов, но когда я хочу показать номер в ярлыке, я получаю это предупреждение, и оно не работает: приведение из 'CNPhoneNumber' к несвязанному типу 'String' всегда завершается неудачей

func contactPicker(_ picker: CNContactPickerViewController, didSelect contacts: [CNContact]) {
    contacts.forEach {(contact) in
        for number in contact.phoneNumbers{
            let phone = number.value
            print(phone)
            numberLabel.text = phone as! String
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вы можете получить значение PhoneNumber как CNLabeledValue.

for number in contact.phoneNumbers{
    if let number = phoneNumber.value as? CNPhoneNumber, let phoneLabel = phoneNumber.label {
      let phoneLocalizedLabel = CNLabeledValue.localizedStringForLabel(phoneLabel)
          numberLabel.text = "\(phoneLocalizedLabel) : \(number.stringValue)"
    }
}
0 голосов
/ 31 мая 2018

TRY:

if let phone = number.value as? CNPhoneNumber {
    print(phone.stringValue)
} else {
   print("number.value not of type CNPhoneNumber")
}

также взгляните на CNContact , CNPhoneNumber

...