正如标题所示,在我使用 swift 的 iOS 应用程序中,我有一个 CNContactProperty 对象,我想从中提取电话号码作为字符串。
用户从中选择联系人后,CNContact 属性通过委托协议函数从标准 CNContactPickerViewController 返回。
当联系人有多个电话号码时,我希望能够从 CNContactProperty 中提取用户在联系人视图中点击的电话号码。
我正在尝试做这样的事情:
let myString = theCNContactProperty.value as! String
但是,这会因 (lldb) 错误而崩溃。我怀疑也许“value”属性不是我需要的?
我可以像这样检索任意数字:
let myString = contactProperty.contact.phoneNumbers[0].value.stringValue
返回联系人的第一个号码。但是,这并不能满足我的目的,因为我希望能够在联系人有超过 1 个号码时提取用户选择的特定号码。
我已经为此工作了几个小时,但无法弄清楚,我非常感谢您能给我的任何帮助!
编辑:这不是所提供链接的重复。链接的问题是关于检索联系人的所有号码,而不是专门选择的号码。这其中存在巨大的差异。
正确答案:
As 马赫迪·穆卡达西 https://stackoverflow.com/users/5853262/mahdi-moqadasi评论中写道,正确答案是使用(contactProperty.value as? CNPhoneNumber).stringValue
.
或者看下面的回答:
从 CNContactProperty 中提取电子邮件 - iOS 9 https://stackoverflow.com/questions/33064984/extract-email-from-cncontactproperty-ios-9/74493904#74493904
iOS Objective C:从 CNContactProperty 中获取用户选择的电话号码作为字符串 https://stackoverflow.com/questions/42777338/ios-objective-c-get-user-selected-phone-number-from-cncontactproperty-as-a-stri/74530554#74530554