iOS Swift:从 CNContactProperty 中获取用户选择的电话号码作为字符串[重复]

2024-01-29

正如标题所示,在我使用 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


所以你说你希望能够获取用户从CNContactViewController.

The CNContactViewController有一个委托函数,返回用户选择的键。这是函数:

optional func contactViewController(_ viewController: CNContactViewController, 
  shouldPerformDefaultActionFor property: CNContactProperty) -> Bool

在该功能中,您可以通过执行以下操作来获取所选的电话号码:

let myString = property.identifier

另外,如果您在此函数中返回 false,则该操作将不会发生,我认为这意味着它不会自动呼叫该号码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS Swift:从 CNContactProperty 中获取用户选择的电话号码作为字符串[重复] 的相关文章

随机推荐

  • 命名约定(单数或复数名称类)

    我有一个class对商店进行建模 所以它具有以下属性 name 描述 address phone etc 我应该命名它吗ShopInfo or 商店信息 任何链接到命名约定 如果你有一个类的对象 它只是信息for one店铺 该对象描述了一
  • iOS Swift:从 CNContactProperty 中获取用户选择的电话号码作为字符串[重复]

    这个问题在这里已经有答案了 正如标题所示 在我使用 swift 的 iOS 应用程序中 我有一个 CNContactProperty 对象 我想从中提取电话号码作为字符串 用户从中选择联系人后 CNContact 属性通过委托协议函数从标准