Основное отличие архитектуры CocoaMVC от традиционной MVC заключается в ролях контроллеру и объектам представления приложения. 3
В традиционной MVC контроллер владеет моделью, вид зависит от контроллера. 1 Вид не имеет состояний, он просто отрисовывается заново, как только в модели что-то меняется. 1 У вида нет доступа на запись в модель, все изменения производятся только через контроллер. 1
В CocoaMVC контроллер — это промежуточный слой между видом и моделью. 1 Он принимает события из вида и модели и посылает запросы на модификации туда и туда. 1 В контроллер можно положить всю логику, которая не помещается в модель, например, преобразует данные для «красивого» отображения. 1
Кроме того, в CocoaMVC вид и контроллер тесно связаны, они находятся в одном классе. 2 В традиционной MVC, наоборот, вид и модель разделены, они не знают друг о друге, только о контроллере. 2