在视图加载时恢复NSTimer

时间:2014-10-14 23:40:30

标签: ios objective-c nstimer

所以我有一个有计时器的视图。因此,当您按下“开始”时,NSTimer将开始更新UILabel并使用时间。现在,当您按回到上一个视图时,我会存储计时器的当前持续时间,当我加载此视图时,我想再次启动NSTimer,但这次我想显示已经过去的时间。

例如,

启动计时器:0:0:0 按下:0:0:10 当我在30秒后回到视图时,现在NSTimer从0:0:10开始,它应该是0:0:40

这就是我计算恢复时间的方式:

NSDate *resumeDate = [today dateByAddingTimeInterval:interval];

如何获得正确的时间戳?

2 个答案:

答案 0 :(得分:0)

NSTimer无法“重新开始”。一旦你启动计时器,你所能做的就是让它运行或停止它。

您必须使用新的时间戳创建一个新的NSTimer对象。

至于如何添加时间戳,NSTimeInterval数据类型是标准C double值的别名。所以你可以这样做:

interval += 4.2 // add 4.2 seconds to the interval

答案 1 :(得分:-2)

你不能暂停计时器而是停止计时器。因此,如果您想要“恢复NSTimer”,您只能创建一个与之前计时器相同的新计时器并让它运行。