我的应用程序出现了一些奇怪的行为。有时,当用户终止应用程序时,会再次调用 SceneDelegate.init() 和 scene(_:willConnectTo:options:) ,这会导致再次运行应用程序初始化流程。这会导致一些意外行为和应用程序崩溃。
应用代理:
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_: UIApplication, didFinishLaunchingWithOptions _: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return true
}
...
}
场景代理:
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
override init() {
super.init()
print("Init")
}
func scene(_ scene: UIScene, willConnectTo _: UISceneSession, options: UIScene.ConnectionOptions) {
guard let scene = (scene as? UIWindowScene) else {
return
}
print("App starting")
...
}
}
会不会是 iOS 中的一些错误,或者我这边有问题?
谢谢。