我遇到了一个大问题但无法解决问题: 我用NSTimer进行倒计时,倒计时工作正常,点击一个按钮,倒计时开始,当达到零时,出现一个标签。 当我再次按下按钮并再次开始倒计时时出现问题,但这次快两倍!下一次越来越快......我不知道该怎么做......我需要做一个循环,但只能工作一次...... 我一直在寻找,但我没有找到任何关于它...不知道是否有人有同样的问题。 感谢名单。
NSTimer *timer; int i;
-(IBAction)pressButton{
i = 10;
timer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(timerFires)
userInfo:nil
repeats:YES];
[timer fire];
}
- (void) timerFires{
if(i > 0){
i--;
label.text = [NSString stringWithFormat:@"%i", i];
}
else{
label.text = @"Tiempo!!";
timer = nil;
}
}
答案 0 :(得分:5)
您可能多次触发计时器。第二次单击按钮时,需要取消第一个计时器。
-(IBAction)pressButton{
i = 10;
if (timer != nil) {
[timer invalidate];
}
timer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(timerFires)
userInfo:nil
repeats:YES];
[timer fire];
}
答案 1 :(得分:1)
我认为这可能是bcoz你永远不会停止你的计时器,所以当你点击它第二次它和2个计时器运行等等....尝试在你点击并再次启动之前停止你的计时器..