CoreData и ViewControllers не должны знать друг о друге.
UIViewControllers не являются традиционными контроллерами в мире MVC. Они более тесно связаны с представлениями - и я предпочитаю создавать их с учетом этого (в большинстве примеров кода Apple много кода ModelController - возможно, для простоты примеров).
Мне нравится создавать ModelController и оставлять мой ViewController, управляющий моими представлениями, и я даю своим ViewControllers экземпляр моего ModelController.
Мой ModelController будет управлять моей моделью, загрузкой, редактированием, удалением и т. Д. Я все еще открываю свои классы Model для моих ViewControllers, но Views НИКОГДА не покидают ViewController. Вы никогда не увидите View в ModelController.
Преимущество этого состоит в том, что если вы позже создадите приложение для iPad - ваша модель и ее поведение совершенно не зависят от ваших ViewControllers, поэтому, когда вы создаете несколько новых UIViewControllers для вашего приложения для iPad - вы можете подключить ваши ModelControllers.
У вашего ModelController может быть родительский класс с дублирующимися методами CRUD.
С другой стороны ....
Библиотека с именем MagicalRecord https://github.com/magicalpanda/MagicalRecord добавляет шаблон активной записи в NSManagedObjects.