Делегат - это некоторый объект, который реализует набор методов, от которых зависит функционирование вашего приложения или среды, с которой вы связываетесь. Это средство реализации шаблона проектирования на основе делегирования, в котором ответственность за выполнение действия передается от некоторого корневого источника заинтересованной третьей стороне. Например, UIApplication
имеет делегат методов , которые предоставляют третьей стороне возможность выполнять операции в определенные моменты времени в течение срока службы приложений. Это может быть вехой на временной шкале, в которую вы можете внести свой вклад в историю.
Контроллер - это совершенно другое животное, которое отвечает за контроль. ViewController отвечает за управление представлениями - за загрузку их в память с диска, когда они необходимы, и за разгрузку их, когда они не нужны. Они преобразуют контент из некоторого базового объекта модели в форму, которая может использоваться вашими объектами представления, загружают контент в вашу модель в памяти с диска или из Интернета и сбрасывают содержимое обратно на диск при сохранении и / или выходе.