2017-03-27 20 views
3

我有一個SKScene顯示加入當前房間的玩家。如果任何這些球員離開房間(通過點擊「離開」按鈕)他們的球員列表將被更新。如何將applicationWillTerminate用於特定的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) 
} 
相關問題