MVC-дружественный подход к базовым данным - PullRequest
1 голос
/ 26 октября 2011

Хорошо, так что я довольно новичок в Core Data, и теперь я начинаю углубляться в это, и у меня есть вопрос о правильном способе его реализации.

У меня есть объект parentViewController, который загружениз приложения Delegate.ParentView - это представление, которое настраивает подкачку UIScrollView для еще трех объектов viewController, это дочерние элементы.Представление загружается, и я могу красиво просматривать страницы между тремя представлениями.

Все три представления должны иметь значительный объем обмена данными с Базовыми данными.Должен ли я передать ссылку на managedObjectContext в каждое отдельное представление в parentView, чтобы все представления могли извлекать и записывать в базовые данные сами?Или я должен сохранить ссылку в parentView и позволить дочерним элементам передавать запросы родительскому элементу для обработки?

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 октября 2011

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

0 голосов
/ 26 октября 2011

Обычно я использовал третий вариант, по крайней мере, для простых приложений с одним хранилищем постоянных данных, к которым я обращаюсь в течение всего срока службы приложения: сделайте managedObjectContext свойством делегата приложения и инициализируйте его при запуске приложения. Затем вы можете получить к нему доступ из любого места в вашем приложении, используя что-то вроде:

MyApplicationDelegate *delegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *moc = [delegate managedObjectContext];

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

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