У меня есть небольшой проект, который представляет собой таймер, который отсчитывает время до полуночи, и мне было интересно, должен ли я оставить его как есть, вычисляя время до полуночи каждую секунду (внутри метода NSTimer, который вызывается каждую 1 секунду):
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 секунды, но если результат будет таким же, как в другом случае, нет причин не оптимизировать.. так или иначе, я должен сделать это таким образом? И почему?
Спасибо.