在联系人中,我设置了一个带有自定义标签的日期字段(编辑联系人时,请选择添加字段->日期->周年纪念->添加自定义标签)。
它存储在ID为'kABPersonDateProperty‘的ABMultiValue属性中,标签为(例如) 'Next Appointment’。
index的功能包括告诉我索引处的标签名、读取索引处的值以及在ID/ ABMultiValue之间进行转换。
请原谅我在这里太粗了,但是最快的方法是获得‘下一个约会’的日期,以迭代多值字段,查找匹配标签的索引,然后复制该索引处的属性的值?据我所知,记录之间的索引会有所不同。
我意识到有一个从属性ID获取索引的函数,但这意味着在早些时候,我将不得不通过查看所有记录来发现propertyid,试图找到其中包含“下一个约会”字段的记录,以获取其属性ID。
我希望在表视图中查看日期并对其进行排序,因此我需要尽可能高效地获取值。有没有人有快速完成此操作的方法,最好是使用示例代码或进一步信息的链接?
发布于 2009-11-10 15:04:36
你描述的方法是正确的。您可能想要执行类似于iPhone OS的地址簿编程指南中的multivalue properties示例代码的操作:
CFStringRef phoneNumber, phoneNumberLabel;
multi = ABRecordCopyValue(aRecord, kABPersonPhoneProperty);
for (CFIndex i = 0; i < ABMultiValueGetCount(multi); i++) {
phoneNumberLabel = ABMultiValueCopyLabelAtIndex(multi, i);
phoneNumber = ABMultiValueCopyValueAtIndex(multi, i);
/* ... do something with phoneNumberLabel and phoneNumber ... */
CFRelease(phoneNumberLabel);
CFRelease(phoneNumber);
}
CFRelease(aRecord);
CFRelease(multi);https://stackoverflow.com/questions/1701682
复制相似问题