当另一个应用程序全屏时,NSTimer运行缓慢

时间:2018-03-23 11:38:50

标签: swift macos cocoa nstimer

我正在使用NSTimer作为计时应用。计时器将更新推送到位于屏幕顶部系统栏中的计时器。

我的一位用户注意到一些奇怪的事情,当他们在全屏幕上运行另一个应用程序时,计时器似乎失去了10%的时间。但如果其他应用程序没有全屏 - 那么它在正确的时间完全爆炸。

我的做法是否有缺陷:

以下方法由定时器功能触发:

@objc func update() {
    currentTime += 1
    updateMenuTimer()
}
private func updateMenuTimer() {
    guard let timeString = currentTimeString else { return }
    appDel?.updateMenuTimer(newTime: timeString)
}
// In AppDelegate I manage the status bar view
func updateMenuTimer(newTime: String) {
    statusItem.button?.title = newTime
}

1 个答案:

答案 0 :(得分:0)

NSTimer并不准确,这篇文章对此进行了描述,并附有一些引用文档:Ionic Native。我建议您在短时间内使用计时器根据计时器启动时最初保存的变量通知UI更新。