Swift。在应用程序关闭后让 NSTimer 保持 运行
Swift. Make a NSTimer keep running after the app is closed
好的,我正在构建一个应用程序,你有 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 运行 在应用程序 运行 后台时正确,那么您需要提供一个进程 运行 后台(例如:播放音频)。
如何运行后台播放音频,可以参考这个link:http://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial
此致。
好的,我正在构建一个应用程序,你有 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 运行 在应用程序 运行 后台时正确,那么您需要提供一个进程 运行 后台(例如:播放音频)。
如何运行后台播放音频,可以参考这个link:http://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial
此致。