[NSDate date] が、スリープから復帰した直後に古い日付と時刻を返すことに気付きました。これの仕様や、起床後に現在の日付と時刻を更新する方法に関する情報が見つかりません。
誰かが行動に関する情報を持っていますか?
[NSDate date] が、スリープから復帰した直後に古い日付と時刻を返すことに気付きました。これの仕様や、起床後に現在の日付と時刻を更新する方法に関する情報が見つかりません。
誰かが行動に関する情報を持っていますか?
おそらく、applicationSignificantTimeChange:
アプリのデリゲート メソッドまたはUIApplicationSignificantTimeChangeNotification
通知を処理してみてください。
applicationSignificantTimeChange:
ドキュメントから:
アプリケーションが現在中断されている場合、このメッセージはアプリケーションがフォアグラウンドに戻るまでキューに入れられ、その時点で配信されます。複数の時刻変更が発生した場合、最新のもののみが配信されます。
NSDate クラスから正確なデータを取得するには、この時点まで待たなければならない場合があります。ビューの読み込みが早すぎる可能性があります。
ただし、この種のことを行う方がおそらく良いでしょう。これをviewWillAppear:
行うと、大幅な時間変更イベントの処理を回避できると思います。
ivarに保存NSDate
して、アプリの再起動後に確認していますか? この場合、古い日付になります。
でivarを再初期化するviewWillAppear
か、AppDelegate
. または、終了時に設定することもできますnil
。