Есть ли способ получить идентификаторы контактов адресной книги из идентификаторов контактов служб Sync? - PullRequest
13 голосов
/ 02 ноября 2011

При получении измененных контактов из служб синхронизации с помощью метода applyChange:forEntityName:remappedRecordIdentifier:formattedRecord:error. Идентификаторы в адресной книге имеют вид 2C13E20E-6B24-4090-81FA-7A1E8B28119B, и хотя некоторые идентификаторы такого типа присутствуют в объекте ISyncChange *, это не фактические идентификаторы контактов, которые можно найти в адресной книге ...

Есть ли способ узнать в Sync Services, какой идентификатор определенного контакта есть в адресной книге?


Причина запроса заключается в том, что при сохранении больших изображений для контактов в адресной книге службы синхронизации не сохраняют эти изображения во внутреннем хранилище данных. Поэтому контакты, которые были изменены или добавлены с большим изображением, будут возвращены службами синхронизации без изображения, в основном предлагая неполную информацию.

Мне нужно получить идентификатор адресной книги, чтобы я мог посмотреть фотографию контакта в ~/Library/Application Support/Address Book/Images/

Спасибо!

1 Ответ

1 голос
/ 05 января 2012

Неправильно полагаться на идентификатор адресной книги, относящийся к изображению в ~ / Library / Application Support / Address Book / Images / - вам лучше найти API, который предоставит вам данные, с которыми вы хотите работатьс, потому что вы не гарантированы, что изображение будет там или позже (после обновления, это все может измениться!).

После небольшого количества исследований, кажется, что API вы хотитездесь задокументировано: http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AddressBook/Tasks/AccessingData.html#//apple_ref/doc/uid/20001023-103617

Это немного громоздко, потому что вам обязательно нужно понять их протокол ABImageClient и предоставить обратный вызов, но я не думаю, что это так уж плохо.Этот подход намного лучше, чем тот, который вы делали - это санкционированный Apple способ получения этих данных, и вам не придется беспокоиться о том, что они сломаются в будущем.

...