Передача ссылки на контекст NS Core Data между контроллерами представления

В моем начальном контроллере представления я настроил документ NS Core Data и получил файл manageOBjectContext. Затем я передаю это любому контроллеру представления, который будет следующим. Работает, но выглядит некрасиво. Каждый раз, когда у меня возникает новый переход или я перемещаюсь в другую область приложения, мне нужно передать эту ссылку.

Не проще ли было бы создать эту ссылку в appDelagate и сделать ее глобально доступной для всех контроллеров представлений?


person Jonathan    schedule 10.06.2012    source источник


Ответы (2)


Вот статья о хорошем методе создания диспетчера данных, который существует вне иерархии вашего контроллера и может использоваться там, где это необходимо: http://nachbaur.com/blog/smarter-core-data

В статье объясняется теория и есть ссылки на реализацию.

person Phillip Mills    schedule 10.06.2012
comment
Указанная ссылка мертва. - person David; 21.12.2015
comment
Похоже, автор заархивировал страницу. Попробуйте: nachbaur.com/2011/04/19/smarter-core-data. - person Phillip Mills; 21.12.2015

Вам не нужно передавать основной контекст данных. Его можно получить в контроллере представления, выполнив что-то вроде этого:

NSManagedObjectContext *context = [(MyAppDelegate *)[[UIApplication sharedApplication\ delegate] managedObjectContext];

Однако на самом деле я предпочитаю делать это, передавая контекст при запуске контроллера.

person johan    schedule 10.06.2012