我正在使用iOS AddressBook框架进行测试,我正在尝试计算什么,在特定标签中提取值的最佳方法是什么,并且如果这些标签的顺序发生变化,同时也会出于任何随机原因而想知道。
这是我在添加新联系人或添加到现有联系人时所做的事情:
let phone:ABMutableMultiValue = ABMultiValueCreateMutable(
ABPropertyType(kABStringPropertyType)).takeRetainedValue()
ABMultiValueAddValueAndLabel(phone, phoneNumber, kABPersonPhoneMainLabel, nil)
稍后在委托致电unknownPersonViewController()
时,我正在这样做:
let phone: ABMultiValueRef = ABRecordCopyValue(person,
kABPersonPhoneProperty).takeRetainedValue()
firstPhone = ABMultiValueCopyValueAtIndex(phone, 0).takeRetainedValue() as! String
请注意,我假设主要标签位于索引 0 。我知道可以与CFString标签进行比较,但这些标签看起来很有趣,在比较它们时给我这种奇怪的直觉。所以,我不确定如何解决这个问题。
答案 0 :(得分:1)
您不应该承担任何订单。您必须阅读标签的值。它们“看起来很有趣”,但它们很容易处理:它们的格式为"_$!<Label>!$_"
,其中"_$!<"
和">!$_"
只是您可以依赖的分隔符。