【发布时间】:2023-03-17 01:50:01
【问题描述】:
我的应用程序即将完成,Beta 测试在秒表部分发现了一个错误... 秒表使用 nstimer 进行计数,并有一个用于存储圈数的表,但是当圈数表滚动时,手表会停止或暂停,并且不会弥补丢失的时间。
通过以下方式消除了这种停滞:
startingTime = [[NSDate date] timeIntervalSince1970];
计算经过的时间。
但我仍然使用 NSTimer 每 0.1 秒触发一次,这意味着即使经过的时间最终会正确更新,滚动仍然会暂停计时器......并将其与 Apple 秒表进行比较,这让我想知道那个秒表是否有一个单独的线程来计算经过的时间。有谁知道这是怎么做的吗?
现在,使用 Epoch 以来的时间在某种意义上运行良好,但它使启动、停止和重新启动秒表的事情变得复杂
当手表停止时,时间会被存储并用于计算手表重新启动时的偏移量,但似乎会引入一些延迟,并且在手表重新启动时时间会明显提前。
对于根本原因或解决方案的任何想法将不胜感激。
【问题讨论】: