時刻が変更されたときに通知を受け取るベスト プラクティスはありますか?
NSTimer
時間が変更された場合 (秒とミリ秒ではなく、時間と分) を 0,002 秒ごとにチェックして、アプリのラベルと電話の時計との同期を毎分維持する を使用しています。
より良い解決策があることを願っています。
ありがとうございました
時刻が変更されたときに通知を受け取るベスト プラクティスはありますか?
NSTimer
時間が変更された場合 (秒とミリ秒ではなく、時間と分) を 0,002 秒ごとにチェックして、アプリのラベルと電話の時計との同期を毎分維持する を使用しています。
より良い解決策があることを願っています。
ありがとうございました
次の 1 分から始まる繰り返しタイマーを設定します。
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let nextMinuteDate = NSCalendar.currentCalendar().nextDateAfterDate(NSDate(), matchingUnit: .Second, value: 0, options: [.MatchNextTime])!
self.minuteDidChangeTimer = NSTimer(fireDate: nextMinuteDate, interval: 60.0, target: self, selector: "minuteDidChangeTimer:", userInfo: nil, repeats: true)
NSRunLoop.currentRunLoop().addTimer(self.minuteDidChangeTimer, forMode: NSDefaultRunLoopMode)
:
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
self.minuteDidChangeTimer.invalidate()
self.minuteDidChangeTimer = nil
:
}
UIApplicationSignificantTimeChangeNotification
また、「新しい日 (午前 0 時) への変更、キャリア時間の更新、夏時間への変更、または夏時間からの変更」など、予期しない大きな変更に対応して UI を更新することもできます。