13

从 Sync Services 获取修改后的联系人时,通过applyChange:forEntityName:remappedRecordIdentifier:formattedRecord:error方法。通讯录中的 ID 的格式为2C13E20E-6B24-4090-81FA-7A1E8B28119B,尽管 ISyncChange * 对象中存在一些此类 ID,但这些 ID 并不是可以在通讯录中找到的实际联系人 ID...

有没有办法从 Sync Services 中找出地址簿中某个联系人的 ID 是什么?


询问的原因是,在通讯簿中保存联系人的大图片时,同步服务不会将这些图片保存在其内部数据存储中。因此,修改或添加了大图的联系人会被同步服务返回而没有图片,基本上提供的信息不完整。

我需要获取地址簿 ID,以便我可以在其中查找联系人的图片~/Library/Application Support/Address Book/Images/

谢谢!

4

1 回答 1

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 协议并提供回调,但我不认为这很糟糕。这种方法比您所做的要好得多 - 这是 Apple 认可的获取这些数据的方式,您不必担心它在未来会被破坏。

于 2012-01-04T22:54:51.283 回答