Выборка базовых данных ... Почему управляемый объект не извлекается с использованием контекста B после вставки его в контекст A и сохранения контекста A? - PullRequest
2 голосов
/ 31 марта 2012

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

У меня есть два nsmanagedobjectcontexts. Я назову их А и Б.

  1. Я вставляю новую сущность E в A
  2. Я экономлю A
  3. из B Я пытаюсь получить все E-сущности, найденные в магазине, простым запросом fetchRequest
  4. При выполнении NSFetchRequest для получения всех E-сущностей из B я не могу получить тот, который вставил в A, даже если A был сохранен.
  5. Я могу получить E, если выполню NSFetchRequest против A.

Я думал, что после сохранения контекста ManagedObject в этом контексте будет сохранен в постоянном хранилище (у меня есть только одна постоянная настройка хранилища). Тогда я подумал, что могу получить управляемый объект E из того контекста, который мне нужен, поскольку любой NSFetchedRequest извлекает данные из постоянного хранилища в контекст, в котором я его выполняю.

Что мне здесь не хватает? Почему я не могу получить E из любого контекста, который мне нужен, после сохранения контекста A, в который E был вставлен в первую очередь?

1 Ответ

2 голосов
/ 31 марта 2012

Вам необходимо объединить изменения из контекста A в контекст B. или создать экземпляр контекста B после сохранения контекста A.

Ознакомьтесь с документацией для mergeChangesFromContextDidSaveNotification в NSManagedObjectContext.

...