-1

我有一个计时器,我可以多次启动和停止。每次计时器停止后,如何累积值?

4

2 回答 2

0

我想通了...这是我的做法:

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

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

于 2012-08-12T20:20:33.050 回答
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];

等等

于 2012-08-12T14:25:25.377 回答