![](/img/trans.png)
[英]Xcode Swift 5 MacOs app empty window when archived but works when running it from Xcode
[英]Swift & macOS: Timer works with delay when app works in background
我有一個macOS應用,該應用具有計時器並每秒增加數字。 每隔60秒,我會顯示一條通知並顯示一些消息。
我發現我的macOS Swift應用程序運行有些延遲,並且在大約10分鍾后開始進入睡眠狀態(沒有新的顯示;不再顯示)。
我找到了一些解決方案,例如:
private func startTimer() {
timer = Timer.scheduledTimer(
timeInterval: 1.0,
target: self,
selector: #selector(timerTick),
userInfo: nil,
repeats: true
)
RunLoop.main.add(timer, forMode: RunLoopMode.commonModes)
}
但是此命令並沒有幫助我解決計時器的后台運行滯后問題:RunLoop.main.add(timer,forMode:RunLoopMode.commonModes)
需要一些經驗豐富的Swift家伙來幫助我解決這個有趣的挑戰。 我需要正確計算后台應用程序中的秒數,因為我的應用程序每隔幾分鍾就會顯示一次警報消息,如果無法正確顯示這些警報,則我的應用程序將無法正常運行。
謝謝!
我敢打賭,您正在遇到App Nap 。 您確實擁有一些控制權,可以通過NSProcessInfo告訴系統不應使用App Nap結束您的進程。
您也許還可以嘗試禁用App Nap defaults write <app domain name> NSAppSleepDisabled -bool YES
...但不確定是否仍然有效(App Nap是OS X 10.9中引入的,因此三年的時間可能是已禁用禁用功能...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.