Основные данные 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:
Когда вы сохраняете изменения в контексте, изменения фиксируются только "на одно хранилище". Если вы сохраняете дочерний контекст, изменения передаются его родителю. Изменения не сохраняются в постоянном хранилище до тех пор, пока не будет сохранен корневой контекст.
Сохранение никогда не происходит автоматически, поэтому родительский контекст не сохраняет изменения, пока вы не скажете ему сохранить.