2017-07-20 23 views
-1

我想提取IOS联系人商店中电话号码的可用标签列表,以便当用户向联系人添加新号码时,他/她可以从中选择一个标签该号码的表格列表。 我没有检索和写联系号码的问题,但可用标签的列表正在逃避我。用于从IOS联系商店提取CNContactLabels的代码

什么我真的想要实现对标签的电话号码数组提取物作为在:

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

,但我无法找出提取值PHONENUMBERS。

+0

我被打上了这个但我仍然没有找到答案 - 也许我的问题是措辞不佳 - 我的意思是: 获得标准和自定义标签列表独立于任何联系人仍然是我不能找到答案。 所以我想要的文档都显示了电话号码,电子邮件等可能的标签列表;就像IOS在接触新联系人时所做的一样。 –

回答

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)") 
} 
} 
+0

感谢看起来这将获得联系人现有电话号码的标签 - 我试图找到的是电话号码的所有标签的列表,以便当用户使用我的应用程序采取新号码时,他将呈现带有可能的标签列表以及添加新的自定义标签的选项。 我已经下载了MGContacts(我认为是由苹果公司编写的),它除了添加联系人和标签外都做了一切工作!\ –

+0

获取独立于联系人的标准和自定义标签列表仍然是我无法找到答案的 –

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) 
    } 

并不理想,因为如果苹果决定添加一个新的常数的应用程序将需要维护。能够直接从设备中提取常量会更好。 另外,如果有自定义标签,我的代码会错过这些。