无法从contactProperty获取选定的号码

杰西卡·金布尔

经过数小时的故障排除后,在StackOverFlow上搜索并尝试一些答案。我无法使其正常工作,我需要能够选择联系人拥有的任何电话号码,但是即使选择住家/公司电话号码,我也总是能够获得,CNLabelPhoneNumberMain或者在某些情况下CNLabelPhoneNumberMobile能获得

我长期以来一直在面对这个麻烦,如果有人能指出我的错误,我将不胜感激:

这是我的代码:

@IBAction func addSupporterContactTapped(_ sender: UIButton) {

     let contactPicker = CNContactPickerViewController()
     contactPicker.displayedPropertyKeys = [CNContactGivenNameKey, CNContactFamilyNameKey, CNContactPhoneNumbersKey]
     contactPicker.delegate = self
     self.present(contactPicker, animated: true, completion: nil)
}

这就是选择的方式:

func contactPicker(_ picker: CNContactPickerViewController, didSelect contactProperty: CNContactProperty) {

    let numbers = contactProperty.contact.phoneNumbers
    var phoneNumber: String?

            for contact in numbers {
        switch contact.label {
        case CNLabelHome:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        case CNLabelWork:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        case CNLabelOther:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        case CNLabelPhoneNumberMain:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        case CNLabelPhoneNumberiPhone:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        case CNLabelPhoneNumberMobile:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        case CNLabelPhoneNumberPager:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        case CNLabelPhoneNumberHomeFax:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        case CNLabelPhoneNumberWorkFax:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        case CNLabelPhoneNumberOtherFax:
            print("contact.label = \(contact.label ?? "")")
            phoneNumber = (contact.value ).stringValue
        default:
            break
        }
    }

但是无论如何,如上所述,我从来没有得到正确选择的号码。

如果有帮助,选择任何数字后,我会在控制台上打印此数字:

contact.label = _$!<Home>!$_
contact.label = _$!<Mobile>!$_
contact.label = _$!<HomeFAX>!$_

请问有人可以帮忙吗?

瓦迪安

当您选择一个电话号码,picker: didSelect contactProperty:你会得到一个CNPhoneNumber在后面valuecontactProperty

func contactPicker(_ picker: CNContactPickerViewController, didSelect contactProperty: CNContactProperty) {
    if let phoneNumberObject = contactProperty.value as? CNPhoneNumber {
        let phoneNumber = phoneNumberObject.stringValue
        print(contactProperty.label!, phoneNumber)
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

首次安装时无法获取 IMEI 号码

来自分类Dev

无法从 DataGrid 获取选定的行值

来自分类Dev

当按下通话按钮时,无法获取号码

来自分类Dev

动态生成的html表无法获取选定的td值

来自分类Dev

无法获取Html.Kendo()。ComboBoxFor的选定值

来自分类Dev

asp.net Kendo,无法获取选定的行数据

来自分类Dev

无法从列表中获取选定的值(jsp,sevlet)

来自分类Dev

无法从选定的多行Jlist中获取每个项目?

来自分类Dev

动态生成的html表无法获取选定的td值

来自分类Dev

Webix Datatable onclick无法获取选定的行数据

来自分类Dev

无法从 PHP、SQL 的下拉列表中获取选定的值

来自分类Dev

无法获取 Oracle Jet ojetable 中选定行的值

来自分类Dev

无法在 MainWindow.xaml.cs 中获取选定的 ComboBox 项

来自分类Dev

通过XPath获取号码?

来自分类Dev

获取彩票号码

来自分类Dev

通过XPath获取号码?

来自分类Dev

获取终端号码

来自分类Dev

无法正确显示号码

来自分类Dev

添加号码以获取目标号码

来自分类Dev

发送短信时,python-gammu中出现错误(无法从电话获取SMSC号码)

来自分类Dev

传出期间无法在extensions.conf中获取被叫号码

来自分类Dev

发送短信时,python-gammu中出现错误(无法从电话获取SMSC号码)

来自分类Dev

我无法从Facebook帐户获取邮件ID和手机号码等

来自分类Dev

我无法从ContentControl获取选定的值,也无法设置所需的值

来自分类Dev

获取当前选定的文本

来自分类Dev

从jstree获取选定的节点

来自分类Dev

从TextView获取选定的文本

来自分类Dev

从GridView获取选定的对象

来自分类Dev

从jpopupmenu获取选定的值

Related 相关文章

热门标签

归档