Я пытаюсь создать функциональность типа «секундомер». У меня есть одна метка (для отображения прошедшего времени) и две кнопки (запуск и остановка таймера). Кнопки запуска и остановки вызывают функции startTimer
и stopTimer
соответственно. Каждую секунду таймер срабатывает и вызывает функцию IncreaseTimerCount
. У меня также есть ivar timerCount
, который фиксирует истекшее время в секундах.
- (void)increaseTimerCount
{
timerCountLabel.text = [NSString stringWithFormat:@"%d", timerCount++];
}
- (IBAction)startTimer
{
timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(increaseTimerCount) userInfo:nil repeats:YES];
}
- (IBAction)stopTimer
{
[timer invalidate];
[timer release];
}
Проблема в том, что при нажатии кнопки запуска возникает задержка (которая, как я предполагаю, связана с повторной инициализацией таймер каждый раз, когда вызывается startTimer). Есть ли способ просто приостановить и возобновить таймер, не делая его недействительным и не воссоздавая его? или лучший / альтернативный способ сделать это?
Спасибо.