我正在开发 MacOS 菜单栏应用程序。该应用程序具有在指定时间段内执行的计时器。如果我将时间段设置为 <1 小时,一切正常,事件会在指定的时间间隔内触发。当我将时间间隔设置为 > 1 小时时,事件不会执行,直到我单击菜单栏应用程序图标。
我猜这是系统完成的某种应用程序睡眠,但我无法弄清楚问题到底出在哪里以及如何防止它。仅当应用程序从构建的二进制文件运行时才会出现此问题,而从 Xcode 调试器运行它时我从未发现它。
-- 编辑 1 我用来运行计时器的代码:
self.timer = Timer.scheduledTimer(timeInterval: TimeInterval(changeInterval), target: self, selector: #selector(timerTick), userInfo: nil, repeats: true)
RunLoop.main.add(self.timer!, forMode: .common)