gpt4 book ai didi

swift - 无法从 contactProperty 获取所选号码

转载 作者:行者123 更新时间:2023-12-04 10:55:45 25 4
gpt4 key购买 nike

在花了很多时间进行故障排除后,在 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)
}
}

关于swift - 无法从 contactProperty 获取所选号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59213626/

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