web-dev-qa-db-ja.com

加速度計:didAccelerate:がIOS5で非推奨になったのはなぜですか?

IOS5のリリースには、このコア機能があります 非推奨としてリストされています 。誰かがそれを置き換えるものを知っていますか? AppleはiPhone5から加速度計を削除しないと思います。

23
jcpennypincher

私はまだiOS5を使用していませんでしたが、すでに4.xではUIAccelerometerとUIAccelerometerDelegateがCoreMotionフレームワークに置き換えられました。それはより洗練されており、ジャイロスコープの信号を考慮に入れ、センサーフュージョンを実行します。つまり、バイアス計算などのキャリブレーションを行います。

基本的に、CMDeviceMotionHandlerブロックコールバックは同等になりました。これは、deviceMotionUpdateInterval秒ごとに呼び出されます。または、独自のタイマーループを使用して、データをプルすることもできます。それは非常に簡単で使いやすいです。 単純なiPhoneモーション検出 を見て、SDKドキュメントへの3つのリンクをたどります。

あなたが心に留めておかなければならない3つのことがあります:

  • Device Motionを使用するには、ジャイロスコープのサポートに依存しているため、iPhoneバージョン> = 4または最新のiPodtouch世代が必要です。
  • デバイスモーションを使用する場合、重力を抽出するためにローパスフィルタリングを使用しないでください。
  • 古いハードウェアをサポートしたい場合は、生データを処理する必要があります。これは、CMAccelerometerHandlerを作成し、 startAccelerometerUpdatesToQueue:withHandler: を呼び出すことによって行われます。次に、didAccelerateのようにローパスフィルタリングで重力を抽出する必要があります
29
Kay