Я пытаюсь создать функциональность типа "секундомер". У меня есть одна метка (для отображения прошедшего времени) и две кнопки (запуск и останов таймера). Кнопки пуска и останова вызывают функции 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). Есть ли способ просто приостановить и возобновить таймер, не отменяя его и воссоздавая? или лучший/альтернативный способ сделать это?
Спасибо.