ABRecord - непрозрачный тип C. Это не объект в смысле Objective-C. Это означает, что вы не можете расширить его, вы не можете добавить категорию, вы не можете отправить сообщение. Единственное, что вы можете сделать, это вызвать функции, описанные в Справочник ABRecord с ABRecord в качестве параметра.
Вы можете сделать две вещи, чтобы сохранить информацию, на которую ссылается ABRecord arround:
Получите идентификатор ABRecords по ABRecordGetRecordID()
. ABRecordID определен как int32_t, так что вы можете привести его к NSInteger и сохранить его где хотите. Позже вы можете получить запись обратно из ABAddressBookGetPersonWithRecordID ()
или ABAddressBookGetGroupWithRecordID()
. Но помните, что запись может быть изменена или даже удалена пользователем или другим приложением.
Скопируйте все значения внутри записи в стандартный подкласс NSObject и используйте NSCoding или другие методы для его сохранения. В этом случае вы не сможете воспользоваться изменениями или дополнениями к записи, которую мог внести пользователь.
Конечно, вы можете комбинировать оба подхода.