13

メソッドを使用して、Sync Services から変更された連絡先を取得する場合applyChange:forEntityName:remappedRecordIdentifier:formattedRecord:error。アドレス帳の ID は の形式2C13E20E-6B24-4090-81FA-7A1E8B28119Bであり、この種の ID は ISyncChange * オブジェクトに存在しますが、それらはアドレス帳にある実際の連絡先 ID ではありません...

アドレス帳にある特定の連絡先の ID を Sync Services から調べる方法はありますか?


質問する理由は、連絡先の大きな写真をアドレス帳に保存するときに、Sync Services がそれらの写真を内部データ ストレージに保存しないためです。したがって、変更または追加された大きな写真付きの連絡先は、写真なしで Sync Services によって返され、基本的に不完全な情報が提供されます。

連絡先の写真を検索できるように、アドレス帳 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 に答える