我正在使用NSTimer以特定的计时器间隔调用方法,通常超过十分钟,但如果有所不同。我有一个计时器标签,显示剩余的分钟数,我试图找出每当计时器的分钟值更新时更新该标签的最佳方法。我能想到的唯一两种方式感觉有点hacky ......
还有其他想法吗?
非常感谢你的智慧!
答案 0 :(得分:2)
你可以用一个NSTimer
来做(我想这可以作为你的选择#2,但略有扩展):
targetTime
。NSTimer
和now + 1 minute
之前设置的targetTime
开始。targetTime
进行比较。如果我们在那里,运行目标方法;否则,请在now + 1 minute
和targetTime
之前重新安排计时器。答案 1 :(得分:0)
为计时器持续时间实现符合KVO的属性,使用自定义设置器使计时器无效(如果已存在),将其抛弃,并使用新的持续时间创建和计划新计时器。
(或者,从另一个拥有计时器的对象中观察属性。一个对象保存时间间隔,另一个保存计时器。然后你可以保留合成的setter;你可以用observer方法创建/重新创建计时器。)
然后,在拥有该字段的控制器中,观察该属性,并在属性更改时更新该字段。