カレンダーなどのアプリで、画面に今日の日付などを表示している場合、真夜中に日付が変わった瞬間にUI表示を変えたりなどの処理をしたいことがありますよね。
そのためだけにNSTimerなどを使ってタイマー処理をするのも面倒くさいので、たいていはスルーしていると思うんですが。
実はそんな時に使える便利な機能があります。
UIApplicationDelegateで、applicationSignificantTimeChangeをオーバーライドしておけば、日付が変わった瞬間にこの関数が呼ばれて、UI変更の処理をすることができます。
- (void)applicationSignificantTimeChange:(UIApplication *)application{ NSLog(@"日付の表示を変えてください。"); }
こんな時によばれるので、日時を扱うアプリでは、実装しておくのがお勧めです。
- ユーザーが端末の時間を変更した時
- タイムゾーンが変更された時
- 日付が変わった時
- 夏時間が始まった時、終わった時