Во-первых, см. Что лучше всего описывает делегат приложения?Как это вписывается в общую концепцию?
Делегат приложения является делегатом приложения.Это не место для хранения всего, что вы не знаете, куда еще положить.Это не место для хранения глобалов.Это делегат для объекта UIApplication
.Таким образом, это правильное место для размещения кода, связанного с запуском приложения, завершением, переключением в фоновый режим и т. Д. И т. Д. Что связано с тем, как приложение вписывается в ОС.
Делегат приложенияконтроллер, поэтому он не должен хранить данные.Данные идут в модели.Делегат приложения может создать модель при запуске и передать ее другим контроллерам, но это не API для модели.Часто модель является одиночной, а не создается делегатом приложения.Оба подхода имеют свои преимущества.
В большинстве примеров кода код модели помещается в делегат приложения, поскольку для простых примеров требуется немного меньше кода.Но в реальных программах это делает делегирование приложения слишком сложным и значительно ухудшает повторное использование кода.Ваш делегат приложения обычно должен быть довольно маленьким, и большинство методов в нем должны быть частью <UIApplicationDelegate>
.