デバイスのモーション イベントを処理し、インターフェイスを 5 秒単位で更新するアプリを使用しています。アプリが実行されている合計時間を表示するインジケーターをアプリに追加したいと思います。ネイティブの iOS 時計アプリのようなストップウォッチのようなカウンターは、アプリが実行されている時間をカウントしてユーザーに表示する合理的な方法のようです。
私がよくわからないのは、そのようなストップウォッチの技術的な実装です。これが私が考えていることです:
インターフェイスの更新間隔がわかっている場合は、イベント間の秒数を加算して、秒数をローカル変数として保持できます。または、0.5 秒間隔のスケジュールされたタイマーでカウントを提供できます。
アプリの開始日がわかっている場合は、次を使用して、インターフェイスの更新ごとにローカル変数を日付に変換できます。
[[NSDate dateWithTimeInterval:(NSTimeInterval) sinceDate:(NSDate *)]
stringFromDate
メソッドを使用して、更新された日付を文字列に変換するために、短い時間スタイルで NSDateFormatter を使用できます結果の文字列は、インターフェイスのラベルに割り当てることができます。
その結果、ストップウォッチはアプリの「ティック」ごとに更新されます。
この実装は少し重すぎて、ストップウォッチ アプリほど流動的ではないように思えます。アプリが実行されている時間をカウントするためのより良い、よりインタラクティブな方法はありますか? たぶん、この目的のためにiOSによってすでに提供されているものがありますか?