Objective-Cで残り時間の計算

ある時間からの経過時間なら割りと簡単にできても、残り時間はちょっと面倒かも。
手っ取り早い方法でサクッと実装した。

●残り時間30秒の状況を想定したとき

  1. ある時間にスタートする。その時間+30秒の時間をendTimeに入れておく。
  2. 現在時刻からendTimeまでの時間をremainTimeとして表示する

これだけ。
ただし時間の幅を持たせるオブジェクトにはNSTimeIntervalというまた別の専用のモノを使う必要がある。

.h

NSDate *endTime
NSTimeInterval remainTime;

.m内の適切なメソッドにそれぞれ

// endTimeをセット
[endTime release];
endTime = [[NSDate dateWithTimeIntervalSinceNow:30.0f] retain];
// 残り時間の計算
remainTime = [endTime timeIntervalSinceDate:[NSDate date]];

終わり。


追記

NSTimeInterval *remainTime;

NSTimeInterval remainTime;

に修正しました。
前のままだとエラーが出てしまいました。