ios - XCode8 Swift3 - 打开联系人列表并通过单击检索数据时出现问题

标签 ios swift swift3 cncontact cncontactviewcontroller

目前我正在开发我的第一个 iOS 应用程序,我对代码有点慢而且粗鲁(它很奇怪并且与 java 不同)而且,如果这是唯一的问题,通过新的更新,Xcode 正在我的代码疯了。我想我解决了大部分问题,但是......

之前,在其中一个屏幕上,应用程序打开了地址簿并让用户单击其中一个;单击完成后,联系人列表关闭,该联系人的数据被检索到 Controller 。现在,如果用户单击联系人,则会显示更多信息,但任何信息都来自控制台日志。

我尝试了我在网上找到的所有东西,但我不确定为什么不起作用。

之前,我使用 Addressbook(或类似的东西),但我已经尝试过使用 CNContact

这是按钮代码

@IBAction func addNewContactOnClick(_ sender: AnyObject) {

        let peoplePicker = CNContactPickerViewController()

        peoplePicker.delegate = self

        self.present(peoplePicker, animated: true, completion: nil)
    }

CNContactPickerDelegate 方法

func contactPicker(picker: CNContactPickerViewController, didSelectContacts contacts: [CNContact]){
        contacts.forEach { contact in
            for number in contact.phoneNumbers {
                let phoneNumber = number.value as! CNPhoneNumber
                print("number is = \(phoneNumber)")
            }
        }
    }

func contactPickerDidCancel(picker: CNContactPickerViewController) {
    print("Cancel Contact Picker")
}

最佳答案

CNContactPickerDelegate 的方法在 Swift 3 中更改如下。

func contactPicker(_ picker: CNContactPickerViewController, didSelect contacts: [CNContact]) {
    //your code
}

func contactPickerDidCancel(_ picker: CNContactPickerViewController) {
    //your code
}

对于 CNContactPickerDelegate 的其他方法,请检查 Apple Documentation .

关于ios - XCode8 Swift3 - 打开联系人列表并通过单击检索数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39893616/

相关文章:

swift - 没有使用 Carthage XCode 8.1 的此类模块 'SSZipArchive'

swift - 什么是区分 Swift3 中的 fileprivate 和 private 的好例子

ios - Cocoapods 子规范问题 : None of your spec sources contain a spec satisfying the dependency

ios - 如何在 swift3 中调用 API 后重新加载屏幕

ios - 对于 iOS 中此类 UI 的任何建议

ios - 在 iOS 应用程序中创建包标识符的基本规则是什么

ios - 不知道在哪里添加pod文件flutter ios安装

ios - 替换 Autolayout NSConstraints 设置中的 View

swift - 解析 - 查询 'includeKey' 未在正确的子类中获取对象

ios - 在 UIImagePickerController 中打开录制的视频