Xcode定时器速度问题

时间:2014-08-09 23:51:35

标签: objective-c nstimer

这是我的代码:

- (IBAction)startTrip:(id)sender {
    MainInt = 0;
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0 
                                             target:self 
                                           selector:@selector(countup) 
                                           userInfo:nil 
                                            repeats:YES];
}

基本上,它是一个每1秒计数一次的计数器。它显示时间并且有效。直到这个IBAction再次发生,它应该重置为0并再次开始计数。它会重置,但会以超快的速度开始计数。

1 个答案:

答案 0 :(得分:0)

您应该在再次启动之前使现有计时器无效。我假设timer全局声明。

- (IBAction)startTrip:(id)sender {
    MainInt = 0;

    if (timer.isValid) {
        [timer invalidate]; // here if timer is valid invalidate first.
    }

    timer = [NSTimer scheduledTimerWithTimeInterval:1.0 
                                             target:self 
                                           selector:@selector(countup) 
                                           userInfo:nil 
                                            repeats:YES];
}