0

可能重复:
Xcode:为什么我的计时器每次计时都是 2 秒?

在我的应用程序中,我有一个应该从 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 而不是我的代码?

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

提前致谢!

4

3 回答 3

0

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

于 2012-04-25T17:48:06.560 回答
0

当你说你“点击按钮”时,你的按钮点击代码是什么?在按钮“点击”上会发生几个事件(最值得注意的是按钮向下和向上事件),如果您处理不当,可能会i在一次“点击”中增加多次。

这也可能是计时器减少了 2 而不是 1 的原因——当您“点击”开始按钮时,您正在启动两个计时器而不是一个,导致每个计时器每秒减少一秒。

于 2012-04-25T17:49:07.653 回答
0

为了更好地计算时间,请尝试使用 NSDate 方法:[NSDate date] 作为开始值,[NSDate timeIntervalSinceDate:startTime] 从开始获取时间偏移。

定时器触发间隔大约等于 1 秒。

于 2012-04-25T17:56:22.373 回答