SwiftUI: куда поместить код инициализации приложения, чтобы он не запускался в режиме предварительного просмотра? - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь найти, куда поместить код инициализации приложения, который НЕ должен запускаться в режиме предварительного просмотра. Я видел несколько ответов, в которых говорилось, что некорректно разделять поведение приложения таким образом (запуск против предварительного просмотра), но я не согласен: многим приложениям требуется дополнительная настройка (например, подключение к базе данных, запуск фоновых задач, вызов API, и т. Д. c ), который не подходит для предварительного просмотра (где данные теста stati c имеют наибольшее значение).

В режиме предварительного просмотра XCode фактически запускает приложение и вызывает AppDelegate.applicationDidFinishLaunching, поэтому любой код инициализации после запуска будет запущен.

Каков рекомендуемый способ запуска кода установки приложения, чтобы он не запускался в режиме предварительного просмотра?

1 Ответ

0 голосов
/ 11 апреля 2020

Preview Live, я предполагаю, что вы имеете в виду это, создает полный контекст сцены окна и внедряет там представление для предварительного просмотра, поэтому вызываются все методы делегата приложения и сцены, включая создание экземпляров root ContentView, , но root вид не отображается , ie. его body не называется.

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

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