我正在开发一个具有事件计时器的应用程序,该计时器可以对可以持续很长时间的事件(呃!)进行计时。
我已经在相当长的时间内使用计时器完成了其他应用程序,并且以前从未遇到过这个问题。
基本上,发生的事情是,当应用程序启动时,我NSDate
用[NSDate date]
. 然后,我有一个定期触发的计划对象,并通过将当前值与原始值进行NSTimer
比较来检查已经过去了多少时间。[NSDate date]
据我所知,这是做这类事情的正确方法,但如果我在上一段中有错误的假设,请纠正我。
无论如何,在过去几周在我的新 iPad 上进行测试时,我已经多次(并且随机地)发现我的系统时间似乎在跳跃。有一次,时间似乎跳了 64 秒!这意味着我的计时器标签显示“00:03”,然后立即显示“01:08”(正确添加一秒,然后错误添加 64)!!!在其他时候,它会导致负面的事件持续时间。
这是间歇性发生的,所以我基本上是在问这是否可能是:
- iOS 5.1 的一个错误
- 与特定于新 iPad 的硬件有关(在 iPad 1st Gen、2nd Gen、多个 iPhone/iPod Touch 版本等上从未出现过这个问题......)
- 错误代码(我承认这是可能的,但 NSDate 值不会变成 NSDate 值以外的值,我已经检查了项目中
singleton
设置此值的每个地方。
有没有人有过类似的经历?任何人都可以帮忙吗?