Передача managedObjectContext вдоль иерархии представления / контроллера - PullRequest
1 голос
/ 04 июля 2010

Контекст управляемого объекта в большинстве случаев создается в делегате приложения. Как можно передать его иерархии представления / контроллера, чтобы каждый контроллер навигации / вкладок в дереве мог иметь к нему доступ. Передача ее каждый раз от родителя к ребенку может быть не самой лучшей, поскольку мне приходится каждый раз переносить эту информацию, а иногда не все контролеры на пути к конкретному ребенку могут нуждаться в этом.

Ответы [ 2 ]

6 голосов
/ 04 июля 2010

Рекомендованный дизайн - внедрение зависимости.Это означает, что при создании UIViewController вы передаете NSManagedObjectContext через свойство.Если UIViewController требуется только один или несколько экземпляров NSManagedObject, вы просто передадите их через свойства.

Эта конструкция более гибкая и позволяет более повторно использовать ваш код.Связывание всего с одним «жестко закодированным» NSManagedObjectContext в AppDelegate является хрупким и снижает гибкость вашего кода.

Я подробно обсуждаю это на Сеть разработчиков Mac .

0 голосов
/ 04 июля 2010

Вы также можете создать основной объект контекста в своем главном перо. И связать контроллеры с этим объектом. Или создайте singleton , если вы используете только один MOC.

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