我正在使用Swift联系人并试图确定是否有方法将contacts.phoneNumbers转换为NSDictionary
也就是说,可以通过以下方式访问值:

self.officePhone.text = (contact.phoneNumbers[0].value ).value(forKey: "digits")as! String

如果计数是由用户为每个联系人输入的电话号码决定的,但是如果我打印contacts.phoneNumbers,则会得到如下字符串:
label=_$!<Main>!$_, value=<CNPhoneNumber: 0x1452c870: countryCode=us, digits=7323214682>>

如果它看起来是一个键值对,但是如果为了方便访问而尝试转换为contact.phoneNumbers,则会出现错误:
无法将“CNLabeledValue”类型的值转换为
需要参数类型[AnyHashable:Any]
有什么想法吗?

最佳答案

这对我有效:

    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)
                }
            }
        }
    }

关于swift - Swift 3联系人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40203309/

10-11 04:27