Делегат приложения - это местоположение обработчика для обработки событий, происходящих в приложении.Такие вещи, как открывать и закрывать.Он также зависает в течение всего времени выполнения приложения, и вы можете захватить экземпляр singleton в любой момент, выполнив [[NSApplication sharedApplication] delegate]
.
. Это удобно для передачи объектов между контроллерами и в качестве маршрутизатора для событий.Вы также можете хранить некоторые данные в делегате, если вам нужно изменить / получить доступ к ним в разных частях кода.
Все это хорошо работает для простых приложений, но по мере усложнения вещей вам необходимоесть некоторое разделение обязанностей.AppDelegate должен действительно отвечать только за действия, которые происходят с самим приложением, а не с другим представлением или контроллером.Помещение всего / большей части вашего кода в AppDeligate, безусловно, является плохой практикой и приведет к ужасному коду, поскольку все усложняется и требует обслуживания.