更新为deviceMotionUpdateInterval设置的频率是实际频率吗?

Bat*_*tti 5 iphone core-motion

分析deviceMotion.timestamp我发现DeviceMotion中设置的更新频率不是实际的更新频率.

我实现了一个应用程序,以便测试,低于我所看到的!

    update frequency     actual frequency       average time between two calls
       1/10.000000          10.232265              0.097730
       1/20.000000          19.533729              0.051194
       1/30.000000          30.696613              0.032577
       1/40.000000          42.975122              0.023269
       1/50.000000          53.711000              0.018618
       1/60.000000          53.719106              0.018615
       1/70.000000          71.627016              0.013961
       1/80.000000          71.627263              0.013961
       1/90.000000          53.719365              0.018615
       1/100.000000        107.442667              0.009307
       1/110.000000        107.437022              0.009308
Run Code Online (Sandbox Code Playgroud)

有人注意到了同样的事情吗?这是一个错误吗?

Kay*_*Kay 1

有些人报告了同样的现象,例如设备运动更新的实际频率低于预期,但随着设置的增加而增加,但仍然没有答案。令人惊讶的是,您是第一个报告更高实际频率的人。我对此做了几次测试,无论采取哪种方式都没有真正的区别。

  • 推或拉即处理程序回调或自己的计时器循环
  • iOS 4.2x、iOS 4.3x([更新:]仅使用拉动进行测试)
  • 原始传感器数据或设备运动
  • 陀螺仪或加速度计
  • 在单独的线程中运行它

我认为这是 Core Motion 框架中的一个小错误。