在iOS中实现倒数计时器有哪些更好/最好的方法?
我已经做了一些挖掘并尝试使用NSTimers(1秒定时器)但有些人认为这不是一个好方法,因为它不是很准确!其他人声称它浪费电池,因为它总是在后台开启,直到时间流逝。我以为我可以创建一个多个预定的NSTimer,因此它不会失去同步。有人建议我应该在开始时记录实际时间戳,并以某种方式利用内置时钟并使用它来更新定时器倒计时....除了我似乎无法弄清楚如何做到这一点。有任何想法吗?你是如何实现它的?
答案 0 :(得分:5)
每当您实施计时器时,最好的选择始终是记录您的开始时间。然后,每当您更新界面时,只需获取当前时间和开始时间的差异即可。然后,您可以使用NSTimers在特定时间段触发接口更新。
答案 1 :(得分:0)
确实,NSTimer
不是很准确。因此,您通常不应该简单地将您指定的时间间隔乘以火数,而是使用某种时间戳(例如,存储的NSDate
应该可以满足您的需求)。
关于电池耗尽,我强烈怀疑在频率范围为~1 Hz的定时器具有任何可测量的效应。如果我没有完全弄错,当你的应用程序进入后台时,当应用程序重新进入前台时,所有计时器将暂停并重新安排其各自的开火日期 - 所以这里没有任何伤害。