Основные данные Multiple ManagedObjectContext

Как множественный ManagedObjectContext (MOC) работает в основных данных (Swift 2, iOS 9). Я пролистал много ссылок и материалов в Интернете и получил ответы на StackOverf low, но не смог найти точного ответа.

Я хочу знать, предположим, я создал основной MOC, который указывает на PersistentStoreCoordinator (PSC) и другой частной очереди MOC, родительский контекст которого установлен на вышеупомянутый основной MOC.

Вопрос 1: Тогда как это работает? Иерархия построена следующим образом: Частная очередь MOC -> Основная очередь MOC -> PSC.

Вопрос 2: Если я вызову функцию сохранения в "частной очереди MOC", сохранится ли она в основном MOC, и, в свою очередь, автоматически главный MOC сохранит в PSC? или после сохранения в Private MOC мы должны вызвать явное сохранение в Main MOC, чтобы сохранить его в PSC?

Я только начал работать с основными данными, и онлайн-ссылки не так ясны. Таким образом, любое упрощенное объяснение будет высоко ценится.

Спасибо!

1 ответ

Для вопроса 1 иерархия, однако, вы создаете ее. Если вы создаете контекст без родителя, а затем другой, родительский контекст которого является первым контекстом, он будет таким, как вы описали.

Для вопроса 2 я вернусь к документации по NSManagedObjectContext:

Когда вы сохраняете изменения в контексте, изменения фиксируются только "на одно хранилище". Если вы сохраняете дочерний контекст, изменения передаются его родителю. Изменения не сохраняются в постоянном хранилище до тех пор, пока не будет сохранен корневой контекст.

Сохранение никогда не происходит автоматически, поэтому родительский контекст не сохраняет изменения, пока вы не скажете ему сохранить.

Другие вопросы по тегам