繁体   English   中英

计时器在模拟设备iOS上运行更快?

[英]timer runs quicker on simulation device iOS?

我有一个计时器应用程序。 在Mac模拟器上可以正常工作。 但是当我下载到我的iPhone 6s进行设备仿真时。 计时器实际上比正常运行速度快,比正常运行速度快两倍。 这里有什么问题?

timer = NSTimer.scheduledTimerWithTimeInterval(0.01,目标:自我,选择器:“结果”,userInfo:无,重复:true)

那么0.01表示1/100秒还是1/60秒? 那使我感到困惑。

无论如何,计算机中的计时器在短时间内都不是100%准确的

请牢记以下几点:

1-

您有一个计时器,它将每秒大约执行100次(间隔为0.01)。

2-

NSTimer不够准确,您可能不会让它每1毫秒工作一次。

3-

它是从运行循环中触发的,因此存在延迟和抖动。

另请注意,您的计时器非常不准确。 计时器不会精确地每百分之一秒重复一次。 每秒只能运行80次,或有其他不精确的速率。

尝试使用GCD通话。

dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, <#dispatchQueue#>);
dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, <#intervalInSeconds#> * NSEC_PER_SEC, <#leewayInSeconds#> * NSEC_PER_SEC);
dispatch_source_set_event_handler(timer, ^{
    <#code to be executed when timer fires#>
});
dispatch_resume(timer);

如果需要查找器粒度,可以在此处指定计时器间隔(以纳秒为单位)。 但是,正如另一条评论所述,由于设备的各种因素,很难获得准确的回调率。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM