在我的应用程序中,我有一个应该从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而不是我的代码?
编辑:现在我注意到,当我按下应该在最后停止计时器的按钮(计时器无效)时,它计为正常...它一次计数一秒!
提前致谢!
答案 0 :(得分:0)
对于问题的第二部分,当你按下按钮时:你是否确保按钮的选择器没有被调用两次 - 例如当按下按钮时再按下按钮时再次按下按钮起来。
答案 1 :(得分:0)
当你说'按下按钮'时,你的按钮命中代码是什么?在“点击”按钮上发生了几个事件(最明显的是按下按钮和向上事件),如果处理不当,可以在一次“点击”中多次增加i
。
这也可能是计时器减少两个而不是一个的原因 - 当你“点击”开始按钮时,你启动两个计时器而不是一个计时器,每个计时器导致一秒 每秒减少。
答案 2 :(得分:0)
为了更好地计算时间,请尝试使用NSDate方法: [NSDate date]表示起始值,[NSDate timeIntervalSinceDate:startTime]表示从开始算起时间。
定时器发射间隔约等于1秒。