我正在尝试将不应在预览模式下运行的应用初始化代码放在哪里。我已经看到了几个答案,表明以这种方式拆分应用程序行为(启动与预览)是不正确的,但是我不同意:许多应用程序需要执行其他设置(例如,连接数据库,启动后台任务,调用API等),不适合预览(静态测试数据最有意义)。
在预览模式下,Xcode实际上运行该应用程序并调用AppDelegate.applicationDidFinishLaunching,因此任何发布后的初始化代码都将被触发。
建议运行程序设置代码以使其不在预览中运行的方法是什么?
答案 0 :(得分:3)
“预览实时”,我想是您的意思,它创建完整的窗口场景上下文并注入要预览的视图,因此所有应用程序和场景委托方法都被调用,包括实例化根ContentView
,但根是视图未显示,即它的body
没有被调用。
因此,您可以通过放置代码,启动所有繁琐的网络/网络等来实现目标。根视图的.onAppear
回调中的操作。实际上,这也将对您的用户有益,因为这种方法可以快速启动应用程序并提供初始UI。