Ошибка с таймером мм: сс

Я новичок в цели C.

Я играл с обратным отсчетом в течение некоторого времени, и я не могу заставить его работать.

Я связываю очень многое в раскадровке, и кнопки реагируют, но кажется, что это просто случайный обратный отсчет.

почему я не делаю обратный отсчет, как с 10:00 до 09:59.

- (void)showActivity{
    int currentTime = [time.text intValue];
    int newTime = currentTime - 1;
    int seconds = newTime % 60;
    int minutes = (newTime / 60) % 60;

    time.text = [NSString stringWithFormat:@"%02d:%02d", minutes, seconds];

}

1 ответ

Решение

Если time.text это "10:00", то звонит [time.text intValue] просто собирается вернуть целое число 10,

Я бы порекомендовал создать отдельную переменную (возможно, NSTimeInterval), который отслеживает, сколько секунд осталось, а затем сделать time текстовая метка просто отвечает за отображение в виде минут: секунд.

например

@property NSTimeInterval time; 
@property UILabel *timeLabel; // "time" in your original code

- (void)showActivity {
    NSTimeInterval newTime = self.time - 1;

    int minutes = floor(newTime / 60);
    int seconds = round(newTime - (minutes * 60));

    self.timeLabel.text = [NSString stringWithFormat:@"%02d:%02d", minutes, seconds];
    self.time = newTime;
}
Другие вопросы по тегам