Подтвердить что ты не робот

Почему акселерометр: didAccelerate: устарел в IOS5?

В выпуске IOS5 есть эта основная функция указанная как устаревшая. Кто-нибудь знает, что заменит его? Я предполагаю, что яблоко не собирается удалять акселерометр с iPhone 5.

4b9b3361

Ответ 1

Я еще не использовал iOS 5, но уже в 4.x UIAccelerometer и UIAccelerometerDelegate были заменены каркасом CoreMotion. Он более изощрен, учитывает сигналы гироскопа и выполняет слияние датчиков, т.е. Выполняет ли калибровку материал, такой как расчет смещения.

В принципе, обратный вызов блока CMDeviceMotionHandler теперь эквивалентен. Он называется every deviceMotionUpdateInterval секунд, или вы можете пойти с вашим собственным таймером и вытащить данные. Это довольно простой и простой в использовании. Посмотрите Простое обнаружение iPhone и следуйте трем ссылкам на документы SDK.

Есть три вещи, которые вы должны иметь в виду:

  • Для работы с устройством Motion требуется версия для iPhone >= 4 или новейшее поколение iPod touch, поскольку оно зависит от поддержки гироскопа.
  • При использовании Device Motion вы не должны использовать фильтрацию нижних частот для извлечения силы тяжести, потому что это сделано для вас.
  • Если вы хотите поддерживать устаревшее оборудование, вам придется работать с необработанными данными. Это делается путем создания CMAccelerometerHandler и вызова startAccelerometerUpdatesToQueue:withHandler:. Затем вам нужно извлечь гравитацию с фильтром нижних частот, как в didAccelerate