作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在花了很多时间进行故障排除后,在 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
回到 value
的 contactProperty
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/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!