我有一个在视图控制器中具有计时器的应用程序,该计时器从5分钟倒计时到0:00。
根据ios / Apple应用暂停规则,当应用进入后台运行时,它将停止。
我该如何把握进入睡眠状态的时间并在恢复到几秒钟后更新呢?我知道您不能长时间使用后台处理,因此请避免使用它。
答案 0 :(得分:-1)
似乎是UserDefaults的一个很好的用例。 这可以在主视图控制器中完成,但请确保在应用程序委托中调用syncnize()方法,以确保当应用程序进入后台时,代码将默认值写入磁盘。
ViewController.swift
let defaults = UserDefaults.standard
var timer = Timer()
var timerCount = 300
override func viewDidLoad() {
super.viewDidLoad()
let timeLeft = defaults.integer(forKey: "timerLeft1")
if timeLeft != 0 {
timerCount = timeLeft
}
startTimer()
}
func startTimer() {
timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateCounter), userInfo: nil, repeats: true)
}
@objc func updateCounter() {
if timerCount > 0 {
timerCount -= 1
defaults.set(timerCount, forKey: "timerLeft1")
} else {
timerCount = 300
}
}
Apple文档:UserDefaults