如何为特定的 SKScene 使用 applicationWillTerminate?

How to use applicationWillTerminate for a specific SKScene?

我有一个 SKScene 显示加入当前房间的玩家。如果这些玩家中的任何一个离开房间(通过点击离开按钮),他们的玩家列表将被更新。

但如果我关闭其中一位玩家的应用程序,该特定玩家仍留在房间中。我想从 applicationWillTerminate 调用我的 leaveRoom 函数,这样所有数据都可以正常工作。可能吗?我该如何解决这个问题?

你可以让观察者拦截它:

override func didMove(to view: SKView) {        
        NotificationCenter.default.addObserver(
            self,
            selector: #selector(GameScene.applicationWillTerminate(notification:)),
            name: NSNotification.Name.UIApplicationWillTerminate,
            object: nil)
}
func applicationWillTerminate(notification: NSNotification) {
   // put your code here
}

您可以将观察者移除至:

override func willMove(from view: SKView) {
    NotificationCenter.default.removeObserver(self)
}