有没有办法从Sync Services联系人ID获取地址簿联系人ID?

时间:2011-11-02 11:13:07

标签: objective-c macos addressbook syncservices

通过applyChange:forEntityName:remappedRecordIdentifier:formattedRecord:error方法从Sync Services获取修改过的联系人时。地址簿中的ID的格式为2C13E20E-6B24-4090-81FA-7A1E8B28119B,即使ISyncChange *对象中存在某些此类ID,也不是可以在地址簿中找到的实际联系人ID ... < / p>

有没有办法从Sync Services中找出某个联系人ID在地址簿中的内容?


询问的原因是,在为地址簿中的联系人保存大图片时,Sync Services不会将这些图片保存在其内部数据存储中。因此,Sync Services将返回已修改或添加大图片的联系人,而不显示图片,基本上提供的信息不完整。

我需要获取地址簿ID,以便我可以在~/Library/Application Support/Address Book/Images/

中查找联系人的图片

谢谢!

1 个答案:

答案 0 :(得分:1)

在〜/ Library / Application Support / Address Book / Images /中依赖与图像相关的地址簿ID是个坏主意 - 你最好找一个能为你提供想要工作的数据的API因为你不能保证图像会在那里,或者稍后(升级之后,这一切都会改变!)。

经过少量研究后,您可能会在此处记录您想要的API:http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AddressBook/Tasks/AccessingData.html#//apple_ref/doc/uid/20001023-103617

这有点笨拙,因为你一定需要了解他们的ABImageClient协议并提供回调,但我认为这不是那么糟糕。这种方法比你正在做的要好得多 - 这是苹果认可的获取这些数据的方式,你不必担心将来会破坏它。

相关问题