停止并重置NSTimer

mem*_*one 4 nstimer ios

我有一个简单的计时器使用,按下按钮激活.它从60到0没有问题,但我想要的是停止并重置按钮上的计时器.我已经设法在使用下面的代码按下按钮时停止它,但由于某种原因无法让它重置并停在60.这应该很简单,但它不起作用.有什么建议?

使用简单的Action设置定时器

- (IBAction)timerStart:(id)sender {

if(!secondCounter == 0){
        [countdownTimer invalidate];
    }
    else {
           [self setTimer];
     }
}
Run Code Online (Sandbox Code Playgroud)

定时器代码

- (void)timerRun {
    secondCounter = secondCounter - 1;
    int minutes = secondCounter;

    NSString *timerOutput = [NSString stringWithFormat:@"%d", minutes ];
    countDownLabel.text = timerOutput;

    if(secondCounter == 0){
        [countdownTimer invalidate];
        countdownTimer = nil;
    }
}

- (void)setTimer {
    secondCounter = 60;
    countdownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerRun) userInfo:nil repeats:YES];

}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ian 6

您需要将秒数设置为0,否则您总是使计时器无效,但永远不会再次启动它:

- (IBAction)timerStart:(id)sender {
    if(!secondCounter == 0) {
        [countdownTimer invalidate];
        secondCounter = 0;
    }
    else {
        [self setTimer];
    }
}
Run Code Online (Sandbox Code Playgroud)