为什么加速计:didAccelerate:在IOS5中弃用?

jcp*_*her 22 accelerometer deprecated ios5

IOS5的发布将此核心功能列为已弃用.有谁知道会取代它?我假设苹果不打算从iPhone 5中移除加速度计.

Kay*_*Kay 29

我还没有使用iOS 5,但已经在4.x UIAccelerometer和UIAccelerometerDelegate中被CoreMotion框架取代了.它更复杂,将陀螺仪信号考虑在内并执行传感器融合,即为您校准偏差计算等内容.

基本上CMDeviceMotionHandler块回调现在是等效的.它被称为每个deviceMotionUpdateInterval秒,或者你可以使用自己的定时器循环并拉取数据.它非常简单易用.查看简单的iPhone动作检测,并按照指向SDK文档的三个链接进行操作.

你必须记住三件事:

  • 使用Device Motion需要iPhone版本> = 4或最新的iPod touch,因为它依赖于陀螺仪支持
  • 使用Device Motion时,您不得使用低通滤波来提取重力,因为它是为您完成的
  • 如果要支持较旧的硬件,则必须使用原始数据.这是通过创建CMAccelerometerHandler并调用startAccelerometerUpdatesToQueue:withHandler:来完成的.然后你必须像在didAccelerate中那样通过低通滤波来提取重力