Разделение UIKit и model


#1

Добрый день, подскажите пожалуйста следующий момент по архитектурным особенностям. Не понимаю как отделить полноценно View от модели.

Я понимаю, что в модели содержится вся логика приложения, и что появление упоминание UIKit, такое как UIImage и так далее это нарушение MVC.

Самое простое для примера, мне нужно знать в каком сейчас положении UISwitch и в зависимости от этого выполнить то или иное действие, получается, это я только могу сделать в controller. Отсюда появляются massive View controller Тогда модели у меня вообще худенькие, только структура данных и никакой особо логики не поместишь.

Разделять это все делегатами?! Замыканиями?! Тогда к чему будут относиться эти классы к View или контроллеру. Вот и мучаюсь этим вопросом подскажите, растворите этот кисель в голове


#2

Можно делегатами и замыканиями. Тут особо роли не играет. Вью может и не быть “тупой”, это идеализм. Но во многих случаях я видел упоминания, что вью содержит интерфейсы для реагирования на пользовательский ввод. Ваш UISwitch относится к тому же. Чтобы проще все отделить, можно добавить слои бизнес-логики (интерактор) и подготовки данных для вью (презентер). Как то так! А массив-вью контроллер, это не отступление от абстрактных правил, а чрезмерная перегруженность контроллера. Делайте как вам удобно и понятней, со временем придет понимание, что и куда отнести.