Есть ли способ получить идентификаторы контактов в адресной книге из идентификаторов контактов служб Sync?
При получении измененных контактов из служб синхронизации через applyChange:forEntityName:remappedRecordIdentifier:formattedRecord:error
метод. Идентификаторы в адресной книге имеют вид 2C13E20E-6B24-4090-81FA-7A1E8B28119B
и хотя некоторые идентификаторы такого рода присутствуют в объекте ISyncChange *, это не фактические идентификаторы контактов, которые можно найти в адресной книге...
Есть ли способ узнать в Sync Services, какой идентификатор определенного контакта есть в адресной книге?
Причина для запроса заключается в том, что при сохранении больших изображений для контактов в адресной книге службы синхронизации не сохраняют эти изображения во внутреннем хранилище данных. Поэтому контакты, которые были изменены или добавлены с большим изображением, будут возвращены службами синхронизации без изображения, в основном предлагая неполную информацию.
Мне нужно получить идентификатор адресной книги, чтобы я мог посмотреть фотографию контакта в ~/Library/Application Support/Address Book/Images/
Спасибо!
1 ответ
Неправильно полагаться на идентификатор адресной книги, относящийся к изображению в ~/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 способ получения этих данных, и вам не придется беспокоиться о том, что они сломаются в будущем.