Недавно я узнал, что "вам действительно не нужно обращаться к AppDelegate, чтобы получить контекст управляемого объекта". Apple также внесла эту рекомендацию в свою документацию здесь. Это происходит следующим образом:
Контроллер представления обычно не должен извлекать контекст из глобального объекта, такого как делегат приложения, что делает архитектуру приложения жесткой. Контроллер представления также не должен создавать контекст для собственного использования (если только его вложенный контекст). Это может означать, что операции, выполненные с использованием контекста контекста контроллеров, зарегистрированного в других контекстах, поэтому разные диспетчеры представлений будут иметь разные перспективы для данных.
Далее они упоминали о некоторых других способах получения контекста. Пока я не могу понять, что они там говорят. Может кто-нибудь, пожалуйста, осветить проблему. Любые вспомогательные утверждения фрагмента кода приветствуются.
ИЗМЕНИТЬ
Иногда, однако, проще или более контекст где-то, кроме приложения или документа, или просмотрите контроллер. Несколько объектов, которые вы можете использовать в базе данных на основе данных приложение сохраняет ссылку на контекст управляемого объекта. Управляемый сам объект имеет ссылку на свой собственный контекст, как и различные объекты контроллера, которые поддерживают базовые данные, такие как массив и объект контроллеры (NSArrayController и NSObjectController в OS X и NSFetchedResultsController в iOS).
Извлечение контекста из одного из этих объектов имеет преимущество что если вы перепроектируете свое приложение, например, чтобы использовать несколько контекстов, ваш код, скорее всего, останется в силе. Например, если у вас есть управляемый объект, и вы хотите создать новый управляемый объект объект, который будет связан с ним, вы можете попросить оригинальный объект для его контекст управляемого объекта и создать новый объект, используя это. Это будет убедитесь, что созданный вами новый объект находится в том же контексте, что и оригинал.
Что это такое? Уверен, что он не похож на высоко проголосовавший ответ ниже. Может ли кто-нибудь помочь мне понять эту часть документов Apple?