経過した時間をリアルタイムに表示する

iOSで、ある時点からある時点までの経過した時間を調べる方法。


NSTimerクラスを使います。
http://iphone-tora.sakura.ne.jp/nstimer.html


方法は簡単で、NSTimerを使ってある地点の時間から、
経過した秒数を計算して表示するだけ。
たとえばこんな感じで。

xxx.h
NSDate startDate_;
NSTimer timer_;

-(void)onTimer:(NSTimer*)timer;
{
...
timer_ = [NSTimer scheduledTimerWithTimeInterval:0.01 
                                         target:self
                                      selector:@selector(onTimer:)
                                      userInfo:nil
                                       repeats:YES];
startDate_ = [[NSDate date] retain];
}

-(void)onTimer:(NSTimer*)timer
{
   float second = [[NSDate date] timeIntervalSinceReferenceDate:startDate_];
}

これでsecondにはstartDate_からの経過秒数がミリ秒単位で入るはずなので
それを加工していろいろ利用すればよさげ。


この辺のプログラムを作ってる時に、何で時刻表示とかに直すクラスを
わざわざ探していたのか、自分の馬鹿さ加減にへこみたくなるけど
時/分/秒とかの単位で表示したい場合は、普通に60で割るなり、あまり出せばOKです。


表示する部分のソースも省略してますが、
まぁ、計算して秒数が1秒増えたら画面上のUILabelの内容を変更するとかで行けるはず。