Сохранение списка контактов в NSUserDefaults - PullRequest
3 голосов
/ 11 августа 2009

Используя встроенную платформу адресной книги для iPhone, как я могу сохранить определенный список контактов в массив в NSUserDefaults? Мне нужно сохранить список получателей на потом.

Я хочу убедиться, что у меня не возникнут проблемы, если пользователь редактирует контакты после закрытия моего приложения. Есть ли какой-то уникальный идентификатор, который есть у каждого контакта, который я могу сохранить и просмотреть позже?

Ответы [ 3 ]

2 голосов
/ 11 августа 2009

Будьте осторожны с этим, я полагаю, что существует проблема (по крайней мере, до OS3.0), когда этот ABRecordID мог измениться, когда пользователь синхронизировал свое устройство. Это может вызвать проблемы, если вы снова используете этот идентификатор. Я не знаю, происходит ли это все еще в OS3.0 или нет.

http://discussions.apple.com/thread.jspa?threadID=1771736

Просто на что-то обратить внимание.

2 голосов
/ 27 августа 2009

ABRecordID наверняка изменится (усвоив этот сложный путь - в результате синхронизации контактов нескольких машин)

У Мэтта Джеммелла хорошая запись на iphone-dev-tips-tips-for-synced-contacts

Я не храню составное имя, а вместо этого ABRecordId, имя, фамилию, адрес электронной почты и номер телефона (последние два из которых используются непосредственно моим приложением).

Если я не получу удар по

 ABRecordRef aRef = ABAddressBookGetPersonWithRecordID(addressBook, aRecordId);

Я использую код для поиска потенциальных совпадений по фамилии, имени, а затем уточняю по телефонным номерам.

В заключение я связываю сгенерированный UUID для контакта, так что все это (потенциально) нечеткое разрешение абстрагируется от данных, которые я связываю с контактом.

0 голосов
/ 11 августа 2009

ABRecordRef имеет свойство ABRecordID, которое вы должны иметь возможность использовать для уникальной идентификации его для последующего доступа.

...