Xcode一直在增加2而不是1

时间:2012-04-25 17:34:50

标签: iphone objective-c ios timer add

  

可能重复:
  Xcode: Why is my timer count 2 seconds on every tick?

在我的应用程序中,我有一个应该从12:00到0:00的计时器,但每次打勾都会计算2秒:

11.58
11.56
11.54
11.52 and so on..

这是开始按钮代码中的代码:

tid.text=[NSString stringWithFormat:@"%d:%.2d",minuter,sekunder];
timer= [NSTimer scheduledTimerWithTimeInterval:1.0
                target:self
                selector:@selector(tidklick)
                userInfo:nil
                repeats:YES];

这是方法tidklick:

-(void) tidklick
{
    tiden -= 1;
    sekunder = tiden % 60;
    minuter= (tiden - sekunder) / 60;
    tid.text=[NSString stringWithFormat:@"%d:%.2d",minuter,sekunder];
}

这是开头的代码..

int tiden=720;
int sekunder;
int minuter;

当我点击某个按钮时,会发生这种情况:i++;

但每次按下按钮时i似乎都会添加2 ....

有什么问题? :S看起来像Xcode而不是我的代码?

编辑:现在我注意到,当我按下应该在最后停止计时器的按钮(计时器无效)时,它计为正常...它一次计数一秒!

提前致谢!

3 个答案:

答案 0 :(得分:0)

对于问题的第二部分,当你按下按钮时:你是否确保按钮的选择器没有被调用两次 - 例如当按下按钮时再按下按钮时再次按下按钮起来。

答案 1 :(得分:0)

当你说'按下按钮'时,你的按钮命中代码是什么?在“点击”按钮上发生了几个事件(最明显的是按下按钮和向上事件),如果处理不当,可以在一次“点击”中多次增加i

这也可能是计时器减少两个而不是一个的原因 - 当你“点击”开始按钮时,你启动两个计时器而不是一个计时器,每个计时器导致一秒 每秒减少。

答案 2 :(得分:0)

为了更好地计算时间,请尝试使用NSDate方法: [NSDate date]表示起始值,[NSDate timeIntervalSinceDate:startTime]表示从开始算起时间。

定时器发射间隔等于1秒。