0

[NSDate date] が、スリープから復帰した直後に古い日付と時刻を返すことに気付きました。これの仕様や、起床後に現在の日付と時刻を更新する方法に関する情報が見つかりません。

誰かが行動に関する情報を持っていますか?

4

2 に答える 2

0

おそらく、applicationSignificantTimeChange:アプリのデリゲート メソッドまたはUIApplicationSignificantTimeChangeNotification通知を処理してみてください。

applicationSignificantTimeChange:ドキュメントから:

アプリケーションが現在中断されている場合、このメッセージはアプリケーションがフォアグラウンドに戻るまでキューに入れられ、その時点で配信されます。複数の時刻変更が発生した場合、最新のもののみが配信されます。

NSDate クラスから正確なデータを取得するには、この時点まで待たなければならない場合があります。ビューの読み込みが早すぎる可能性があります。

ただし、この種のことを行う方がおそらく良いでしょう。これをviewWillAppear:行うと、大幅な時間変更イベントの処理を回避できると思います。

于 2012-05-08T15:09:10.183 に答える
0

ivarに保存NSDateして、アプリの再起動後に確認していますか? この場合、古い日付になります。

でivarを再初期化するviewWillAppearか、AppDelegate. または、終了時に設定することもできますnil

于 2012-05-08T14:39:19.680 に答える