我正在使用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/