我正在尝试在IOS联系人存储中提取电话号码的可用标签列表,以便当用户向联系人添加新号码时,他/她可以从表格列表中为该号码选择标签。 检索和编写联系号码没有问题,但是可用标签的列表让我望而却步。
我真正想要实现的是提取电话号码的标签数组,如:
var phoneNumbers : [CNLabeledValue<CNPhoneNumber>] = []
但我无法找到为phoneNumbers提取值的位置。
答案 0 :(得分:0)
Please check this code for CNLabeledValue, its working for me.
for phoneNumber in contact.phoneNumbers {
if let number = phoneNumber.value as? CNPhoneNumber,
let label = phoneNumber.label {
let localizedLabel = CNLabeledValue.localizedStringForLabel(label)
print("\(localizedLabel) \(number.stringValue)")
}
}
答案 1 :(得分:0)
最后,我从文档中提取了一个标签常量列表并执行了:
let arrLab = [CNLabelPhoneNumberHomeFax, CNLabelPhoneNumberMain,CNLabelPhoneNumberMobile,CNLabelPhoneNumberOtherFax, CNLabelPhoneNumberPager, CNLabelPhoneNumberWorkFax,CNLabelPhoneNumberiPhone,CNLabelOther ]
for bod in arrLab {
let label = CNLabeledValue<NSString>.localizedString(forLabel: bod)
arr1.append(label)
}
不理想,因为如果Apple决定添加一个新的常量,应用程序将需要维护。能够直接从设备中提取常量会更好。 此外,如果有自定义标签,我的代码会错过这些。