当我的应用被用户终止时,如何调用SKScene类中的函数?
我需要修改一个值,并在应用程序终止时将其保存到NSUserDefauts。
答案 0 :(得分:6)
您可以注册以在应用即将终止时收到通知。为此,请通过
将观察者添加到默认通知中心// Add this to didMoveToView in your SKScene subclass
NotificationCenter.default.addObserver(self, selector: #selector(saveData), name: NSNotification.Name.UIApplicationWillTerminate, object: nil)
将以下方法添加到SKScene
子类中。该应用程序终止之前将调用该方法。必须通过添加@objc
将其“暴露”到Objective-C,以便通知程序可以使用#selector()
。
@objc func saveData(notification:NSNotification) {
// Save your data here
print("Saving data...")
}
答案 1 :(得分:2)
在Swift 3和4中你有类似的东西: 在你的viewDidLoad
中NotificationCenter.default.addObserver(self, selector: #selector(toDoSomething), name: NSNotification.Name.UIApplicationWillTerminate, object: nil)
而不是你要调用的方法
func suspending () {
print("toDoSomething...")
}
答案 2 :(得分:1)
UIAppDelegate中有一些方法可以帮助您。请查看applicationWillTerminate(_:)
和applicationWillResignActive(_:)
。从那里,您可以看到您的应用所处的状态,并执行相应的操作。