オンラインでもオフラインでも動作する必要があるアプリケーションを開発しています。このアプリケーションは、サーバーと情報を同期する必要があります。このためには、デバイスがサーバー クロックを使用する必要があります。私は多くの情報を見つけました、そして私は次の考えを得ました:
- ユーザーがオンラインでログインすると、サーバーのクロック時間を取得するよう強制します。この時点で、彼は義務的にインターネットに接続している必要があるため、問題ありません。
時計サーバーの時刻を取得すると、デバイスの電源がオンになっている間隔を示す systemUptime 情報を取得し、保存します。次のように systemUptime を取得できます。
[NSProcessInfo processInfo].systemUptime
ユーザーが新しいローカル ファイルを作成するときは、systemUptime 関数に基づいて現在の間隔がわかるため、現在の時刻がわかり、iOS のシステム クロックに依存しません。
問題は、そのデバイスが再起動されるか電源がオフになるたびに、systemUptime がリセットされることです。ここまではOKです。ユーザーに再度ログインを強制し、サーバーのクロック時間を再度取得することで解決できます。私の問題は、デバイスがいつ再起動されたかを知ることです。手伝って頂けますか?君たちありがとう!