Swift 敏捷的关闭应用程序后,使NSTimer保持运行

Swift 敏捷的关闭应用程序后,使NSTimer保持运行,swift,nstimer,Swift,Nstimer,好的,我正在构建一个应用程序,你有6条生命,当你死后,你必须等待2分钟才能获得新的生命,以下是我到目前为止所拥有的: var timeLeft = 120 var countDownTime = NSTimer() func died() { countDownTime = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: ("updateTimer"), userInfo: nil, repeats

好的,我正在构建一个应用程序,你有6条生命,当你死后,你必须等待2分钟才能获得新的生命,以下是我到目前为止所拥有的:

var timeLeft = 120
var countDownTime = NSTimer()

func died() {
    countDownTime = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: ("updateTimer"), userInfo: nil, repeats: true)
}

func updateTimer() {
    timeLeft--
    if timeLeft == 0 {
        stopTimer()
    }
}

func stopTimer() {
    countDownTime.invalidate()
    timeLeft = 120
}
我的问题是如何保持计时器运行,所以当我关闭和打开我的应用程序时,计时器一直在运行


很抱歉,如果这是一个重复的问题,我只是无法得到我问题的答案。

您可能需要将计时器开始时间戳保存到
NSUserDefaults


如果用户离开应用程序。输入时,在您的
AppDelegate
InitialViewController
中,您可以检查所用时间是否大于2分钟,然后继续或向用户显示等待屏幕。

我想您希望在应用程序运行后台时NSTimer运行正确。对吗

当应用程序在后台运行时,NSTimer只正确运行约3分钟(从IOS7开始)或10分钟(在IOS7之前)。所以,如果您想在应用程序运行后台时正确运行NSTimer,则需要提供进程运行后台(例如:播放音频)

如何运行后台音频,您可以参考以下链接:


关于。

打开应用程序,您是指从终止状态或后台状态打开应用程序,并解释关闭应用程序?这可能有帮助:持久存储?当玩家死亡时,存储日期时间。每当玩家尝试重新启动游戏时,您需要确保自存储时间起已经过了两分钟。