2013-06-21 2 views
4

10 - хорошая библиотека для управления coredata. В моем приложении мне приходится обрабатывать json из веб-службы для управления Json, мы используем JSONModel. Теперь проблема в том, что я должен использовать два отдельных класса для управления магической записью и jsonModel.JSONModel с MagicalRecord

Есть ли способ, с помощью которого я могу объединить эти два? Спасибо заранее.

+0

Если вы напрямую импортируете все данные, полученные из веб-службы, в основные данные, вы можете использовать сам управляемый объект, но вам нужно будет написать несколько методов самостоятельно, например, создать или обновить и т. Д. – Anupdas

+0

@ Анупдас, используя Магическая запись, не так ли? – Eldhose

+2

Я предполагаю, что вы знаете об этом факте, что MagicalRecord имеет некоторые приятные функции импорта как таковые в нем. Это хороший [учебник] (http://www.cimgf.com/2012/05/29/importing-data-made-easy/) автор MagicalRecord об импорте. Это избавит вас от необходимости разбирать JSON для другого модельного объекта, прежде чем добавлять его к основным данным. – Anupdas

ответ

4

То, что я лично сделать, это добавить все мои экземпляры JSONModel метод под названием:

- (ID) mergeWithContext:

Всякий раз, когда я получаю объект JSON из Интернета, JSONModel разборов он для меня и преобразует данные в то, что мне нужно, тогда, если я хочу сохранить его в CoreData, я просто вызываю mergeWithContext: и передаю ему текущий контекст.

Дальше в моем методе mergeWithContext: метод Я просто создаю новый объект, соответствующий текущему объекту JSONModel, и скопируйте все значения. (На самом деле я также проверяю, существует ли объект с идентификатором модели в CoreData - тогда я его обновляю, иначе я создаю новый экземпляр).

Не слишком сложно, и вы получаете достаточную гибкость, если вам нужно добавить какое-то пользовательское поведение при сохранении данных.

mergeWithContext: возвращает, конечно, сам объект, поэтому я могу работать с ним дальше, если нужно.

+0

спасибо за эту идею. Вы можете дать какой-нибудь пример кода, как реализовать это сообщение? – Eldhose