iOS开发:如何获取用户为CNContact属性创建的自定义标签?
当然可以啦!在iOS的Contacts框架里,完全能够获取用户为CNContact属性创建的自定义标签~
你说得没错,CNContact里的很多属性(比如电话号码、邮箱)都是CNLabeledValue泛型类型,它的label属性就是用来存储标签内容的——不管是系统自带的预设标签(比如CNLabelHome、CNLabelWork这类常量),还是用户自己创建的自定义标签,都能通过这个属性直接拿到。
举个实际的代码例子,假设你已经获取到了目标CNContact实例,要提取它的电话号码及对应的标签(包括自定义的):
// 假设已获取到目标contact实例 for phoneEntry in contact.phoneNumbers { let tagLabel = phoneEntry.label ?? "未设置标签" let phoneNumber = phoneEntry.value.stringValue print("标签:\(tagLabel),号码:\(phoneNumber)") }
这里要注意两个小细节:
- 如果是系统预设标签,
label返回的是框架定义的常量字符串(比如CNLabelHome),如果需要转换成用户界面上看到的本地化文字,可以用CNLabeledValue.localizedString(forLabel:)方法处理; - 如果是用户自定义的标签,
label会直接返回用户输入的原文(比如你截图里用户可能创建的“重要客户”“紧急联系人”这类自定义内容),不需要额外转换。
附上你提供的两张操作界面截图:

内容的提问来源于stack exchange,提问作者daniel
相关产品推荐
相关产品推荐

