我有一个小项目,它是一个倒计时到午夜的计时器,我想知道是否应该保持原样,每秒计算直到午夜的时间(在每 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 秒的时间,但如果结果与其他方式相同,则没有理由不进行优化.. 所以无论如何,我应该这样做吗?为什么?
谢谢。