Разница между SceneDelegate и AppDelegate - PullRequest
7 голосов
/ 07 июня 2019

В моем проекте SwiftUI я вижу файл AppDelegate, а также файл SceneDelegate.

Чем они отличаются?

Например, между методами в SceneDelegate

scene(_:willConnectTo:options:)

и в AppDelegate

application(_:didFinishLaunchingWithOptions:)

1 Ответ

7 голосов
/ 07 июня 2019

Эти два файла предназначены для разделения работы на то, что необходимо для запуска приложения в целом, и то, что необходимо для одного «экземпляра», который бы поддерживал работу в фоновом режиме.Это может быть что-то вроде настройки базы данных один раз, но с отображением разных наборов значений по окнам.

Вы можете думать о них как о глобальной и частной версиях.Один является общим, а другой - отдельным владельцем.В некотором смысле, это именно то, что вы ожидаете от имен.

Поддержка нескольких окон

В следующий раз, когда вы создадите новый проект Xcode, вы увидите свой AppDelegateразделен на две части: AppDelegate.swift и SceneDelegate.swift.Это результат новой многооконной поддержки, реализованной в iPadOS, которая эффективно разделяет работу делегата приложения на две части.

Начиная с iOS 13, ваш делегат должен:

  1. Установите любые данные, которые вам нужны на время работы приложения.
  2. Отвечайте на любые события, связанные с приложением, такие как файл, которым вы делитесь с вами.
  3. Регистрация для внешних служб, таких как push-уведомления.
  4. Настройка начальногосцены.

Напротив, делегаты сцены предназначены для обработки одного экземпляра пользовательского интерфейса вашего приложения.Таким образом, если пользователь создал два окна, в которых отображается ваше приложение, у вас есть две сцены, каждая из которых поддерживается одним и тем же делегатом приложения.

Помните, что эти сцены предназначены для работы независимо друг от друга.Таким образом, ваше приложение больше не перемещается на фон, а вместо этого - отдельные сцены - пользователь может переместить одну на фон, оставив другую открытой.

Предоставлено https://www.hackingwithswift.com/articles/193/whats-new-in-ios-13

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...