如何累积NSTimer值

时间:2012-08-12 14:09:15

标签: objective-c nstimer

我有一个计时器,我开始和停止多次。每次定时器停止后,如何累积值?

2 个答案:

答案 0 :(得分:0)

启动计时器时记下开始时间。每当定时器触发时,将当前时间和开始时间之间的差值添加到总数中。然后将开始时间重置为当前时间。当计时器停止时,您可以将当前时间和开始时间之间的差异添加到总计,也可以不依赖于您的应用程序,但不要重置开始时间。重新启动计时器时,不要向总计添加任何内容,而是重置开始时间。

这样的事情:

startTime = [[NSDate alloc] initWithTimeIntervalSinceNow]; // This is an NSDate* in your class

然后当你的计时器开火时:

NSDate* currentTime = [NSDate dateWithTimeIntervalSinceNow];
accumulatedTime += [currentTime timeIntervalSinceDate:startTime]; // accumulatedTime is an NSTimeInterval in your class
[startTime release];
startTime = [currentTime retain];

答案 1 :(得分:0)

我明白了......这就是我的表现:

NSTimeInterval *accumulatedTime;
accumulatedTime += 1.0;  //  add one second

当然假设您有支持代码来启动,暂停和停止计时器。