gpt4 book ai didi

IOS - CNContactPickerViewController 应该只显示有电子邮件的名字吗?

转载 作者:搜寻专家 更新时间:2023-10-30 23:09:10 40 4
gpt4 key购买 nike

我只想获取手机联系人的姓名和邮箱,打印出来。我正在使用以下代码来完成此任务。

import UIKit
import ContactsUI
class ViewController: UIViewController, CNContactPickerDelegate{

override func viewDidLoad() {
super.viewDidLoad()

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()

}


@IBAction func button(_ sender: Any)
{
let contactPicker = CNContactPickerViewController()
contactPicker.delegate = self
contactPicker.displayedPropertyKeys =
[CNContactNicknameKey
,CNContactEmailAddressesKey]

self.present(contactPicker, animated: true, completion: nil)

}
func contactPicker(_ picker: CNContactPickerViewController, didSelect contact: CNContact)
{
if let emailValue : CNLabeledValue = contact.emailAddresses.first
{
print(emailValue.value as String)
}

print(contact.givenName + " " + contact.familyName)

}
}

它打印我在 CNContactPickerViewController 中选择的姓名和电子邮件,即使选择的姓名没有电子邮件,它也只打印姓名。现在,我想要的是,我不想在 CNContactPickerViewController 中显示没有电子邮件的名称。应仅显示存储有电子邮件的名称。我该怎么做?

使用 Xcode 8.2、Swift 3、IOS 10

注意:我不想检查电子邮件是否存在,或者它是否有效。

最佳答案

您是否尝试过向 CNContactPickerViewController 添加谓词? documentation似乎完全符合您正在寻找的要求。

在您的 button() 方法中,在调用 present() 之前添加以下内容。

contactPicker.predicateForEnablingContact = NSPredicate(format: "emailAddresses.@count > 0")

关于IOS - CNContactPickerViewController 应该只显示有电子邮件的名字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42439443/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com