Может ли кто-нибудь сказать мне, когда мы используем AppDelegate.m и AppDelegate.h во время программирования iPhone? Я использовал только ViewController.m и ViewController.h для базового обучения. Я просто хочу знать, когда и почему используется AppDelegate. Благодарю.!!
Разница между AppDelegate.m и View Controller.m
Ответ 1
Оба определяют классы, но классы используются для разных вещей. ViewController.h/m определяет класс контроллера представления, который управляет иерархией представлений - в основном, одним экраном приложения. У вас может быть несколько экранов, каждый из которых имеет свой собственный контроллер вида.
AppDelegate.h/m определяет класс, который управляет приложением в целом. Приложение создаст один экземпляр этого класса и отправит эти сообщения объектов, которые позволят делегату влиять на поведение приложения в четко определенные времена. Например, -приложение: didFinishLaunchingWithOptions: отправляется, когда приложение завершает запуск и готово сделать что-то интересное. Взгляните на страницу ссылки UIApplicationDelegate для списка сообщений, которые может реализовать делегат приложения, чтобы изменить поведение приложения.
Ответ 2
Я хотел бы добавить следующие ответы @Caleb.
Если уход не выполняется, AppDelegate может легко стать одним из наиболее доступных объектов в приложении. Обычно я воздерживаюсь от вызова методов в AppDelegate с любого из моих ViewControllers. Если в AppDelegate ничего не сообщается, это повлияет на поведение всего приложения.
Я сохраняю свой AppDelegate для следующего:
- Инициализация: все, что необходимо сделать при первом запуске (после установки или обновления)
- перенос данных из версии в версию (например, если вы используете CoreData и миграции)
- конфигурация объектов, связанных через IBOutlets из MainWindow.xib
- определение начальной ориентации для запуска в
- сохранение незафиксированных данных/состояний до того, как приложение будет завершено или в фоновом режиме
- регистрация в службе уведомлений Apple Push и отправка токена устройства на наш сервер
- открытие одного из поддерживаемых URL-адресов приложений (например, maps://)
Для других сценариев использования и более подробного описания AppDelegate см. Руководство по программированию приложений iOS.
Ответ 3
view-controller. h/m отвечает за контроль связи между вашей моделью и вашим представлением (подробнее о MVC здесь).
AppDelegate. h/m отвечает за жизненный цикл вашего приложения. Что делать, когда пользователь нажимает кнопку "Домой" и выходит из приложения, что делать, когда приложение вводит фон. Такие вещи.