2

ゲーム中にデバイスのモーション更新をオンまたはオフにできるようにしたいと考えています。しかし、それらをオフにしてから再び戻すと、CMMotionManager の .deviceMotion プロパティは、最後の既知の deviceMotion をしばらくの間 (約 0.5 秒、新しい値を計算できるようになるまで) 返します。

したがって、取得した CMDeviceMotion オブジェクトの年齢をテストし、数秒より古い場合は無視できるようにしたいと考えています。

CACurrentMediaTime() - deviceMotion.timestamp を計算すると、正確な結果が得られるようです..しかし、これが将来のデバイスまたは iOS バージョンで壊れるのではないかと心配しています。デバイスのモーション タイムスタンプは、今後も CACurrentMediaTime() と同等であることが保証されていますか? CMDeviceMotion タイムスタンプの経過時間を計算するより良い方法はありますか?

Appleのドキュメントから:

CACurrentMediaTime()

mach_absolute_time() を呼び出し、結果を秒に変換することによって得られる CFTimeInterval。

deviceMotion.timestamp

タイム スタンプは、電話が起動してからの秒単位の時間です。

4

1 に答える 1