0

我希望我的应用程序能够计算每秒的点击次数。我认为这与 相关touchesBegan:...,但这在按钮上不起作用,是吗?无论如何,我将如何测量每秒的点击次数?我想我可以使用每秒重置的计数器手动完成,但我想知道是否有更好的方法。它会将值添加到数组中吗?如果是这样,我能计算出不包括 0 的平均值吗?

我当前的代码。

-(void) timer:(NSTimer *)averageTimer {
    if(tapCountInLastSecond != 0) {
        secondsElapsed++;
        averageTapsPerSecond += tapCountInLastSecond / secondsElapsed;
        tapCountInLastSecond = 0;
        NSLog(@"Average: %f", averageTapsPerSecond);
    }
}
4

1 回答 1

3

在您的 viewController 中放置这些计数器

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];

然后在任何时候,您都可以通过读取值来获得平均 Taps/SecondaverageTapsPerSecond

希望这对你有意义

于 2013-09-22T20:18:17.470 回答