Iphone 更新设备移动的频率设置更新间隔it';实际频率是多少?

Iphone 更新设备移动的频率设置更新间隔it';实际频率是多少?,iphone,core-motion,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

通过分析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
有人注意到了同样的事情?
这是一个bug?

例如,有些人报告了相同的现象,但仍然没有答案。令人惊讶的是,你是第一个报告更高实际频率的人。我对这个做了几次测试,你走哪条路都没有真正的区别

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

我认为这是核心运动框架中的一个小缺陷。

我使用的是推送(我在文档中读到,它是获取数据的更精确的方法),iOS 4.3x iPhone4,只是在设备运动中。如果我使用[CMMotionManager StartAccelerometerUpdatesQueue:[NSOperationQueue currentQueue],实际频率与该设置不同使用Handler:^(CMAccelerometerData*accelerometerData,NSError*error)一切正常,实际频率与我设置的频率相同,CoreMotion创建自己的线程:处理来自传感器的原始数据并运行设备运动算法(我正在读幻灯片WWDC 2010/2011)使用push方法获取原始加速计数据。[1/10.000000 9.988813 0.100112] [1/20.000000 19.957865 0.050106] [1/30.000000 29.902478 0.033442] [1/40.000000 39.825712 0.025109] [1/50.000000 49.725514 0.020110] [1/60.000000 59.608615 0.016776] [1/70.000000 69.477139 0.014393] [1/80.000000 79.321895 0.012607] [1/90.000000 88.883474 0.011251] [1/100.000000 98.643989 0.010137]因此,您是否正确理解,您现在已经使用NSOperationQueue解决了问题?如果是,我建议您编辑问题并将解决方案粘贴到最后。这样其他人可以第一眼看到解决方案。我没有解决问题,但我测试了问题仅存在于设备运动中(用户加速度、姿态、旋转率、重力)不在CmAccelerMeterData和CMGyroDataAh中,我看到了-很抱歉没有准确阅读;)也许我没有在iOS 4.3上运行这个组合。我在自己的线程中使用pull方法来获得更多控制。无论如何,有价值的信息我支持你的问题。