Хранение ABRecordRef в основных данных - PullRequest
4 голосов
/ 20 февраля 2012

Я хотел бы сохранить ABRecordRef в сущности «Клиент» в основных данных.

Я прочитал в документации на яблоки, что ABRecordRef является примитивным типом данных C. Насколько я знаю, вы можете вставлять объекты только в основные данные. Имея это в виду, как лучше всего хранить его в основных данных?

Я думал о преобразовании его в NSNumber для хранения, но не знаю, как преобразовать его обратно в ABRecordRef для использования.

Я также думал, что мог бы просто поместить его в NSArray / NSSet / NSDictionary самостоятельно, просто действуя как обертка, но не знал, будет ли это глупо / неэффективно / даже сработает.

Мысли оценены.

Большое спасибо

1 Ответ

12 голосов
/ 21 февраля 2012

В одном из моих приложений я просто сохранил ABRecordGetRecordID () как INT32 в хранилище CoreData (поскольку ABRecordID - это int32_t), а также сохранил имя контакта в хранилище CoreData для быстрого отображения.Таким образом, информация о записи хранится в адресной книге, к которой она принадлежит, и вы только что сохранили «указатель» на запись в своем хранилище CoreData.

Затем вы можете создать удобные средства доступа к обертке в вашем пользовательском клиенте NSManagedObject, который будетОберните вызовы C в структуру AB, чтобы удовлетворить ваши потребности.

...