Более одного ManagedObjectContext

В моей управляемой модели объекта есть несколько сущностей. Я думаю, что можно создать ManagedObjectContext для каждого... Если это правда, я хотел бы знать:

  1. Нужен ли мне метод - (NSManagedObjectModel *)managedObjectModel для каждого ManagedObjectContext?

  2. Нужен ли мне метод - (void)saveContext для каждого ManagedObjectContext?


person Romowski    schedule 21.02.2013    source источник
comment
Вы абсолютно уверены, что хотите это сделать? Можете ли вы отредактировать свой вопрос, указав более подробную информацию о том, почему, по вашему мнению, вам нужно это сделать?   -  person jrturton    schedule 21.02.2013
comment
@jrturton Извините за мой английский ... в общем, я хочу использовать manageObjectContexts для каждой сущности. Если у меня есть 5 сущностей, я создам 5 manageObjectContexts Или может быть достаточно одного manageObjectContexts?   -  person Romowski    schedule 21.02.2013
comment
С вашим английским все в порядке, я хочу знать, почему вы хотите это сделать?   -  person jrturton    schedule 21.02.2013
comment
Я думаю, что будут некоторые проблемы, если я буду работать с несколькими сущностями (которые используют 1 manageObjectContexts) одновременно... может быть, я ошибаюсь...   -  person Romowski    schedule 21.02.2013


Ответы (2)


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

Отдельные контексты полезны для фоновых потоков и временных рабочих пространств, как довольно хорошо объяснено здесь. До тех пор, пока вам это не понадобится, придерживайтесь одного контекста.

person jrturton    schedule 21.02.2013

Прочитайте Основные сведения о данных еще раз и взгляните на некоторые пример кода, использующий Core Data.

Обычно,

  • У вас есть одна NSManagedObjectModel, похожая на схему, которая предоставляет описания ваших сущностей.
  • У вас есть один NSPersistentStoreCoordinator, который использует вашу NSManagedObjectModel для создания БД.
  • И у вас есть один или несколько NSManagedObjectContext, которые являются «блокнотами», которые общаются с вашим NSPersistentStoreCoordinator и управляют контекстом объектов. Думайте об этом как о способе совершить транзакцию.

И когда вы создаете проект, обязательно отметьте «Использовать основные данные», чтобы проект был настроен для вас.

person Ric    schedule 21.02.2013