Передача объектов между контекстами управляемого объекта - PullRequest
4 голосов
/ 16 июля 2009

У меня есть приложение для iphone с двумя контекстами управляемого объекта. Один из моих контекстов имеет дело со средством выбора, которое позволяет пользователю добавлять новые записи и затем выбирать одну из этих новых записей. Когда средство выбора скрыто, контекст этого управляемого объекта сохраняется и удаляется.

Затем я хочу использовать этот выбранный объект в контексте моего второго управляемого объекта и добавить (связать) его с другим объектом. Изменения этого второго MOC могут быть сохранены или удалены. Вот почему создается первый MOC, позволяющий всегда сохранять изменения, внесенные в сборщике, независимо от того, сохраняются ли они или отменяются изменения во втором MOC.

Надеюсь, это понятно! Моя проблема заключается в том, что когда пользователь выбирает объект из средства выбора, этот объект находится в другом контексте, в котором он должен использоваться. Есть ли способ, которым вы можете передавать объекты между контекстами? Возможно, используя идентификатор объекта (после того, как он был сохранен).

Спасибо за вашу помощь!

1 Ответ

5 голосов
/ 16 июля 2009

Вы упомянули правильное решение в вопросе. Вы не можете передавать NSManagedObjects между несколькими контекстами, но вы можете передавать NSManagedObjectIDs и использовать их для запроса соответствующего контекста для объекта, представленного этим ID. Поэтому просто сохраните данные (через save :), а затем передайте идентификатор в другой контекст и используйте его, чтобы запросить контекст для соответствующего объекта.

В зависимости от того, что вы хотите сделать, вы можете настроить mergeChangesFromContextDidSaveNotification: так, чтобы изменения в одном контексте автоматически отражались в другом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...