Хранение ABRecordRef в основных данных
Я хотел бы хранить ABRecordRef в сущности "Клиент" в основных данных.
Я прочитал в документации Apple, что ABRecordRef является примитивным типом данных C. Насколько я знаю, вы можете вставлять объекты только в основные данные. Имея это в виду, каков наилучший способ сохранить его в основных данных?
Я думал о преобразовании его в NSNumber для хранения, но не знаю, как преобразовать его обратно в ABRecordRef для использования.
Я также думал, что мог бы просто поместить его в NSArray/NSSet/NSDictionary самостоятельно, просто действуя как обертка, но не знал, будет ли это глупо / неэффективно / вообще сработает.
Мысли оценили.
Большое спасибо
1 ответ
В одном из моих приложений я просто сохранил ABRecordGetRecordID() как INT32 в хранилище CoreData (поскольку ABRecordID - это int32_t), а также сохранил имя контакта в хранилище CoreData для быстрого отображения. Таким образом, информация о записи сохраняется в адресной книге, к которой она принадлежит, и вы только что сохранили "указатель" на запись в своем хранилище CoreData.
Затем вы можете создать удобные средства доступа к оберткам в вашем пользовательском клиенте NSManagedObject, который будет обернуть вызовы C в среду AB в соответствии с вашими потребностями.