2015-07-31 2 views
0

У меня есть два объекта: «Лицо» и «Автомобиль» поступают из веб-службы. Мне нужно сохранить это в sqlite через данные ядра. Я хочу знать, какой лучший подход я должен привязать метод сохранения с помощью NSmanagedobject или написать по-другому в утилите или менеджере?Лучшая практика для базовых данных Модель объекта save

**Approach 1** 

@interface Person : NSManagedObject 

@property (nonatomic, retain) NSString * title; 

- (void) saveManagedObject:(NSDictionary*)response //Responsible for init the person object and save in context 

@end 

**Approach 2** 

@interface CoreDataUtility : NSObject 

- (void) saveManagedObject:(NSDictionary*)response //Responsible for create the person object and save in context 

@end 
+1

Обратите внимание на это, любые методы, которые вы добавляете в классы 'NSManagedObject', которые вы должны делать в категории. Если вы измените макет «CoreData» и регенерируете файлы, ваши методы будут потеряны. – sbarow

+0

Спасибо за заметку :). –

+0

Не могли бы вы предложить мне хороший подход? –

ответ

0

Короткий ответ: оба метода хороши, особенно если вы не хотите иметь дело с сторонними структурами. Это может быть полезно, но также сопряжено с определенными рисками; это был бы другой вопрос.

Совершенно прекрасно иметь метод создания в подклассе `NSManagedObject '(в категории или в другом месте *).

Однако, вы должны сделать это методом , а не методом экземпляра.

Для создания объекта в классе DataManager также является допустимым и очень распространенным шаблоном. Хорошая вещь в классе утилиты заключается в том, что вы можете более легко поддерживать несколько контекстов для фоновых операций.

*) Я больше не использую категории, потому что редко можно изменить модель более чем на несколько полей - я предпочитаю редактировать их вручную.

Смежные вопросы