2017-03-27 5 views
3

私は現在の部屋に参加したプレイヤーを表示するSKSceneを持っています。それらのプレイヤーのいずれかが(Leaveボタンをクリックして)部屋を離れると、プレイヤーのリストが更新されます。特定のSKSceneにapplicationWillTerminateを使用するには?

しかし、いずれかのプレイヤーからアプリを閉じると、その特定のプレーヤーはその部屋に残ります。私はから私のleaveRoom機能を呼び出すため、すべてのデータが正常に動作するようにしたいと思います。出来ますか?この問題を解決するにはどうすればよいですか?

+0

[docs](https://developer.apple.com/reference/uikit/uiapplicationdelegate/1623111-applicationwillterminate)から、このメソッドがいつ実際に呼び出され、いつ呼び出されるかを調べます。 – Whirlwind

答えて

3

あなたはそれを迎撃するためにオブザーバーを行うことができます。

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) 
} 
関連する問題