私はtimerを持っていて1秒ごとにnumberを増やすmacOSアプリを持っています。 60秒ごとに何らかのメッセージが表示されます。SwiftとmacOS:アプリがバックグラウンドで動作しているときにTimerが遅れて動作する
私のmacOS Swiftアプリが少し遅れて実行され、10分後にスリープ状態になりました(新しいaはなくなりました)。
私はこのように、いくつかの解決策を見つけた:
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(タイマー、forMode:RunLoopModeを.commonModes)
私はこの面白い挑戦を解決するのを助けることができる経験豊富な迅速な男が必要です。バックグラウンドアプリで秒数を正確にカウントする必要があります。なぜなら、アプリは数分おきにアラートメッセージを表示してくれて、私にこれらのアラートを正しく表示できない場合、私のアプリは期待通りに動作しません。
ありがとうございました!
あなたがAppleのApp Nap機能(http://arstechnica.com/apple/2013/10/os-x-10-9/13/)に似ているようなサウンドが聞こえます。 1秒に1回の繰り返しタイマーをスケジューリングしてカウンタを増やす代わりに、コールバックを1回だけコールし、数分後に次のタイマーコールバックをスケジュールすることができるシングルショットタイマーをスケジュールする方が良い場合があります。 –
関連:http://stackoverflow.com/questions/27653939/disable-app-nap-in-swift –
問題の解決策がまだ見つかりませんでした。 –