MVC
Суть
MVC в Cocoa — это не «классический» MVC из Smalltalk, и на iOS-интервью спрашивают именно вариант Apple:
- Model — данные и бизнес-логика. Ничего не знает о UI.
- View —
UIViewи его наследники. Показывает то, что ей дали, и сообщает о действиях пользователя (target-action, delegate). Ничего не знает о Model. - Controller —
UIViewController. Единственный, кто знает обоих: читает Model, настраивает View, обрабатывает события и обновляет Model.
Ключевое отличие от Smalltalk-MVC: там View наблюдает Model напрямую. У Apple View и Model не знают друг о друге, их связывает только Controller. Поэтому Model переиспользуется в любом UI, а View — с любыми данными.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep