-1

我正在尝试在 IOS 联系人存储中提取电话号码的可用标签列表,以便当用户向联系人添加新号码时,他/她可以从该号码的表格列表中选择一个标签。我在检索和编写联系号码方面没有问题,但可用标签的列表却让我望而却步。

我真正想要实现的是提取电话号码的标签数组,如下所示:

var phoneNumbers : [CNLabeledValue<CNPhoneNumber>] = []

但我找不到在哪里提取 phoneNumbers 的值。

4

2 回答 2

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)")
 }
}
于 2017-07-20T12:22:11.993 回答
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 决定添加一个新常量,则该应用程序将需要维护。最好能够直接从设备中提取常量。此外,如果有自定义标签,我的代码会错过这些。

于 2017-07-24T17:05:49.657 回答