小编ech*_*avo的帖子

当runloop被阻止时,NSTimer不会触发

我刚刚完成我的应用程序和beta测试发现秒表部分的一个错误...秒表使用一个nstimer进行计数并有一个用于存储圈数的表,但是当滚动表圈时手表停止或暂停并没有弥补失去的时间.

通过使用以下方式消除了停滞:

startingTime = [[NSDate date] timeIntervalSince1970];
Run Code Online (Sandbox Code Playgroud)

计算经过的时间.

但是我仍然使用NSTimer来触发每0.1秒,这意味着滚动仍然会使定时器停止,即使经过的时间最终会正确更新...并且将它与Apple秒表进行比较它让我想知道是否秒表有一个单独的线程,仅用于计算经过的时间.有谁知道这是怎么做的?

现在,使用Epoch以来的时间在某种意义上运作良好,但它使启动,停止和重新启动秒表的问题复杂化

当手表停止时,时间被存储并用于计算手表重新启动时的偏移量,但似乎有一些延迟时间,并且当手表重新启动时,时间会明显跳跃.

任何对根本原因或解决方案的想法都将非常感激.

cocoa nsdate nstimer

24
推荐指数
2
解决办法
1万
查看次数

标签 统计

cocoa ×1

nsdate ×1

nstimer ×1