Контакты адресной книги в базовых данных

Что считается лучшей практикой при сохранении контактов адресной книги в базовых данных?

Я пишу приложение iPhone на основе Core Data, где мне нужно сохранить и вызвать контакты адресной книги как часть модели данных.

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

Неправильно копировать данные из адресной книги, если используется существующая запись, но не уверен, что делать, если отредактирована или удалена запись в адресной книге.

Мне нужно только отслеживать имя и фотографию для целей приложения, поэтому реакция кишки заключается в сохранении ABRecordID и - потому что они могут, по-видимому, изменить (!) - имя и фамилия, и только обновить локальную запись, если она обновлена ​​(как ее отслеживать?).

Или вы можете напрямую сохранить ABRecordRef? (Я полагаю, они стойкие?)

Я сделал некоторые поиски в Google и здесь, но не смог найти примеры кода или обсуждение интеграции Core Data and Address Book таким образом; просто много материала по отдельности.

Любой, у кого есть какой-то опыт /gotchas на эту тему, указывает на них или укажет мне в сторону еще одного чтения?

Спасибо.

Энди W

Ответ 1

Я бы сохранил ABRecordID, а затем обработал ситуацию, когда они меняются, хотя я лично не видел случая, когда они меняются, за исключением случаев, когда пользователь удаляет все данные и восстанавливает их из другого источника (например, переход от MobileMe к Google).