迅速。关闭应用后,让NSTimer继续运行

时间:2016-02-04 19:10:49

标签: swift nstimer

好的我正在构建一个你有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
}

我的问题是如何让这个计时器保持运行,所以当我关闭并打开我的应用程序时,计时器一直在运行?

抱歉,如果这是一个重复的问题,我还没有能够得到我的问题的答案。

2 个答案:

答案 0 :(得分:1)

您可能希望将计时器开始时间戳保存到NSUserDefaults

如果用户离开应用。输入后,在AppDelegateInitialViewController中,您可以检查已用时间是否大于超过2分钟,然后继续或向用户显示等待屏幕。

答案 1 :(得分:0)

我猜您希望NSTimer在您的应用运行后台时运行正确。这是对的吗?

当应用程序运行后台时,NSTimer仅运行正常约3分钟(从IOS7)或10分钟(在IOS7之前)。因此,如果您希望在应用运行背景时NSTimer运行正确,那么您需要提供流程运行背景(例如:播放音频)。

如何运行背景音频,您可以参考以下链接:http://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial

问候。