我希望我的应用能够计算每秒的点击次数。我认为这与touchesBegan:...
有关,但这对按钮无效,是吗?无论如何,我如何衡量每秒的水龙头数量?
我想我可以使用一个每秒重置一次的计数器手动完成,但我想知道是否有更好的方法。
它会将值添加到数组中吗?如果是这样,我能计算出不包括0的平均值吗?
我目前的代码。
-(void) timer:(NSTimer *)averageTimer {
if(tapCountInLastSecond != 0) {
secondsElapsed++;
averageTapsPerSecond += tapCountInLastSecond / secondsElapsed;
tapCountInLastSecond = 0;
NSLog(@"Average: %f", averageTapsPerSecond);
}
}
答案 0 :(得分:3)
放了那些计数器
int tapCountInPastSecond = 0;
float averageTapsPerSecond = 0;
int secondsElapsed = 0;
然后添加在屏幕上调用的方法或点击按钮
- (void)incrementTapCount
{
tapCountInPastSecond++;
}
创建一个计时器,每秒触发一次,进行计算,然后重置点击计数
- (void)timerActions
{
secondsElapsed++;
averageTapsPerSecond = (averageTapsPerSecond*(secondsElapsed-1) +tapCountInPastSecond) / secondsElapsed;
tapCountInpastSecond = 0;
}
现在你可以像这样启动你的计时器:
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerActions) userInfo:Nil repeats:YES];
然后,在任何时候,您都可以通过读取值averageTapsPerSecond
希望这对你有意义