杀死应用程序时调用 SceneDelegate.init()

问题描述

我在我的应用中遇到了一些奇怪的行为。有时,当用户终止应用程序时,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")

        ...
    }
}

我的堆栈跟踪如下所示(终止应用程序后):

stack trace

这可能是 iOS 中的一些错误,还是我这边出了问题?

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)