gpt4 book ai didi

ios - CNContactPickerViewController 仅检索选定的项目

转载 作者:行者123 更新时间:2023-11-28 13:52:21 29 4
gpt4 key购买 nike

委托(delegate)方法实现时:

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

用户可以从列表中选择联系人,然后会自动显示联系人详细信息。从联系人中选择指定字段后,CNContactPickerViewController 关闭。

问题是,如果有两个电话号码,并且用户专门选择了其中一个号码,则返回的 CNContactProperty 包括两个电话号码。

如何只提取用户点击的数字?

示例代码:

func contactPicker(_ picker: CNContactPickerViewController, didSelect contactProperty: CNContactProperty) {
contactProperty.contact.phoneNumbers //the numbers are an array so I am not able to see which one the user selected
}

最佳答案

您的问题是您忽略了选定的属性。您正在直接访问联系人的所有电话号码。使用只有一个选定属性的 contactProperty 参数。

func contactPicker(_ picker: CNContactPickerViewController, didSelect contactProperty: CNContactProperty) {
// See if the user selected a phone number
if let phone = contactProperty.value as? CNPhoneNumber {
let number = phone.stringValue
}
}

如果您只想处理选定的电话号码,上面的代码很好。如果你想处理几种不同的属性类型,像下面这样的东西可能会更好:

func contactPicker(_ picker: CNContactPickerViewController, didSelect contactProperty: CNContactProperty) {
switch contactProperty.key {
case CNContactPhoneNumbersKey:
if let phone = contactProperty.value as? CNPhoneNumber {
let number = phone.stringValue
// do something
}
// case ...: // some other type
default:
break
}
}

关于ios - CNContactPickerViewController 仅检索选定的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54384843/

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