Swift 3 Контакты
Я использую Swift Contacts и пытаюсь определить, есть ли способ разыграть contacts.phoneNumbers
как NSDictionary
? то есть значения могут быть доступны в contacts.phoneNumbers
сюда:
self.officePhone.text = (contact.phoneNumbers[0].value ).value(forKey: "digits")as! String
Где количество определяется количеством телефонных номеров, введенных пользователем для каждого контакта, однако, если я распечатаю contact.phoneNumbers
Я получаю строку примерно так:
label=_$!<Main>!$_, value=<CNPhoneNumber: 0x1452c870: countryCode=us, digits=7323214682>>
Где, как представляется, это пара ключ-значение, однако, если я пытаюсь привести к NSDictionary
для легкого доступа я получаю ошибку:
Невозможно преобразовать значение типа 'CNLabeledValue в ожидаемые типы аргументов [AnyHashable: Any]
Какие-нибудь мысли?
1 ответ
Это работает для меня:
extension ViewController: CNContactPickerDelegate {
func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact) {
let phoneNumbers = contact.phoneNumbers
phoneNumbers.forEach {
if let digits = $0.value.value(forKey: "digits") {
print(digits)
}
}
}
}