ABRecordID a.k.a. уникальный идентификатор - хороший способ идентифицировать каждую запись. Тем не менее, документация Apple содержит некоторые заслуживающие внимания пункты об ABRecordID, возвращенном этим API.
Каждая запись в базе данных адресной книги имеет уникальный идентификатор записи. Этот идентификатор всегда относится к одной и той же записи, если только эта запись не удалена или данные не сброшены. Идентификаторы записи можно безопасно передавать между потоками. Не гарантируется, что они останутся неизменными на всех устройствах.
Таким образом, чтобы ответить на ваши вопросы
1). Какой вариант лучше, хранить уникальный идентификатор записи контакта в SQLite или хранить все детали контакта?
Минимальные сведения, которые я бы посоветовал вам сохранить в вашей БД SQLite: имя, фамилия, дата создания и идентификатор записи
Причина, снова упомянутая в документации Apple:
Рекомендуемый способ сохранить долговременную ссылку на конкретную запись - сохранить имя и фамилию или хэш имени и фамилии в дополнение к идентификатору. Когда вы просматриваете запись по идентификатору, сравните имя записи с вашим сохраненным именем. Если они не совпадают, используйте сохраненное имя, чтобы найти запись, и сохраните новый идентификатор для записи.
Обратите внимание, что я также вставил дату создания базы данных sqLite, поскольку пользователь может изменить имя контакта, но даже на устройстве RESET дата создания остается неизменной.
2). Если ваш ответ является идентификатором, то будет ли этот уникальный идентификатор записи ссылаться на одну и ту же запись каждый раз?
Объясняя ваш первый вопрос, я думаю, что я также ответил на этот вопрос.
Несмотря на то, что я вставил здесь большую часть контента, всегда рекомендуется прочитать документацию