Интеграция основных данных RestKit

Я пережил несколько дней боли, используя RestKit для сопоставления некоторого JSON. Будучи новичком в Core Data, я сделал предположение, что как только RestKit сопоставил данные с моей созданной RestKit БД, т.е.

objectManager.objectStore = [RKManagedObjectStore objectStoreWithStoreFilename:@"EFrontCD.sqlite"];

Я мог покинуть мир RestKit. Затем я попытался загрузить свои данные в UITableViewController, реализующий протокол RKManagedObjectStore и выполняющий обычные действия, но получаю сообщение об ошибке

UIManagedDocument can only read documents that are file packages 

2 вопроса:

  1. Мне теперь все делать через RKManagedObjectStore?
  2. Могу ли я заставить RestKit использовать существующий пакет Core Data вместо создания файла .sqlite, как указано выше?

Спасибо, Бен


person Shocks    schedule 21.11.2012    source источник


Ответы (2)


Отвечая на первую часть моего вопроса, это то, что я искал:

RKObjectManager *objectManager = [RKObjectManager sharedManager];
objectManager.objectStore.managedObjectContextForCurrentThread

Как только у вас есть доступ к MOC, созданному для вас RestKit, все кажется таким же — я могу делать обычные вещи с Core Data.

Мне все еще не ясно насчет второго вопроса, но, конечно, хотелось бы знать, возможно ли это.

person Shocks    schedule 22.11.2012

Кажется, вам не хватает общего понимания того, как работают Core Data. Не стесняйтесь читать это руководство, чтобы улучшить свои знания об этом.

Core Data всегда использует хранилище данных (это может быть SQLite, XML,...), и когда вы указываете RestKit использовать SQlite в качестве хранилища объектов, так и будет.

Чтобы получить данные внутри, вам нужно будет использовать запросы на выборку и ссылку на ссылку ManagedObjectContext, который является своего рода обработчиком между хранилищем данных и вашими данными.

person flashfabrixx    schedule 25.11.2012