此问题在此处已有答案:
How to get a CNContact phone number(s) as string in Swift?(11个答案)
五年前就关门了。
机构群体在16天前审核了是否重新讨论此问题,并将其关闭:
原始关闭原因未解决
正如标题所示,在我使用swift的iOS应用程序中,我有一个CNContactProperty对象,我想从其中提取电话号码作为字符串。
在用户从标准CNContactPickerViewController中选择联系人后,通过委托协议函数从标准CNContactPickerViewController返回CNContact属性。
当一个联系人有多个电话号码时,我希望能够从CNContactProperty中提取用户在联系人视图中点击的电话号码。
我正在尝试做这样的事情:
let myString = theCNContactProperty.value as! String
然而,这崩溃了一个(lldb)错误。我怀疑也许“value”属性不是我所需要的?
我可以像这样检索任意数字:
let myString = contactProperty.contact.phoneNumbers[0].value.stringValue
它返回联系人的第一个号码。但是,这并不能满足我的目的,因为我希望当联系人有多个号码时,能够提取用户选择的特定号码。
我已经研究了几个小时了,还是搞不懂,我会很感激你能给予我的任何帮助!
编辑:这不是提供的链接的副本。链接的问题是关于检索联系人的所有号码,而不是特别选择的号码。这是一个巨大的差异。
正确答案:
正如Mahdi Moqadasi在评论中所写的,正确答案是使用(contactProperty.value as? CNPhoneNumber).stringValue
。
或者看下面的答案:
从CNContactProperty提取电子邮件- iOS 9
iOS目标C:从CNContactProperty获取用户选择的电话号码作为字符串
2条答案
按热度按时间8ljdwjyq1#
因此,您说您希望能够获得用户从
CNContactViewController
中选择的电话号码。CNContactViewController
有一个委托函数,它返回用户选择的键。在该功能中,您可以通过执行以下操作获取选定的电话号码:
此外,如果在此函数中返回false,则操作不会发生,我认为这意味着它不会自动调用该号码。
w1jd8yoj2#
您可以使用这个-虽然,如果联系人有一个以上的电话号码,这将只得到第一个...
编辑:
如果使用:
然后:
注意事项:
函数联系人选取器(_选取器:CN联系人选择视图控制器,didSelect联系人属性:CN联系人属性)
只有当您没有
函数联系人选取器(_选取器:CN联系人选择视图控制器,didSelect联系人:CN联系人)