在Swift中的应用程序终止上调用函数

时间:2014-11-19 06:31:38

标签: swift sprite-kit

当我的应用被用户终止时,如何调用SKScene类中的函数?

我需要修改一个值,并在应用程序终止时将其保存到NSUserDefauts。

3 个答案:

答案 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(_:)。从那里,您可以看到您的应用所处的状态,并执行相应的操作。