计时器在swift 4中无法在后台工作,有什么方法可以工作吗?

时间:2018-01-27 10:01:40

标签: ios timer nstimer swift4

我尝试了下面的代码但是在后台没有工作,它在地面上运行良好。它是从我们将app留在后台的地方开始的。

self.timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(self.updateTimer), userInfo: nil, repeats: true)

func updateTimer()
{
    let minute = (time / 60) % 60
    let second = time % 60
    let hours = (time / 3600)
    time += 1
    self.lblTIme.text = String(format: "%02d:%02d:%02d", hours, minute, second)
}

1 个答案:

答案 0 :(得分:0)

解决这个问题的诀窍是不要自己管理时间,让iOS为你做。

在日期中保存时间(从您想要开始计算的时间),并根据保存日期和当前日期(Date())的差异计算经过时间。

这对代码更加清晰,并且可以帮助您在应用程序背景化时停止计时器。