真夜中までカウントダウンするタイマーである小さなプロジェクトがあり、毎秒真夜中までの時間を計算して、そのままにしておくべきかどうか疑問に思っていました(1秒ごとに呼び出されるNSTimerメソッド内):
NSDate *now = [[NSDate alloc] init];
NSDateComponents *dateComponents = [[self gregorian] components:
(NSHourCalendarUnit |
NSMinuteCalendarUnit |
NSSecondCalendarUnit) fromDate:now];
[now release];
NSUInteger hour = 23 - [dateComponents hour];
NSUInteger min = 59 - [dateComponents minute];
NSUInteger sec = 59 - [dateComponents second];
NSString *time = [[NSString alloc] initWithFormat:@"%02d:%02d:%02d",
hour, min, sec];
[[self lblCountDown] setText:
[time stringByReplacingOccurrencesOfString:@"1" withString:@" 1"]];
[time release];
または、最初にそれを計算してから、呼び出しごとに 1 秒に同期されてから、1 回おきに 1 秒ずつ減算する必要がありますか? これに1秒以上かかることは心配していませんが、結果が同じになる場合は、最適化しない理由はありません..とにかく、そのようにする必要がありますか? なぜ?
ありがとう。