Подтвердить что ты не робот

Разница между AppDelegate.m и View Controller.m

Может ли кто-нибудь сказать мне, когда мы используем AppDelegate.m и AppDelegate.h во время программирования iPhone? Я использовал только ViewController.m и ViewController.h для базового обучения. Я просто хочу знать, когда и почему используется AppDelegate. Благодарю.!!

4b9b3361

Ответ 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 отвечает за жизненный цикл вашего приложения. Что делать, когда пользователь нажимает кнопку "Домой" и выходит из приложения, что делать, когда приложение вводит фон. Такие вещи.