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

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


person jcpennypincher    schedule 19.07.2011    source источник


Ответы (1)


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

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

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

  • Для работы с Device Motion требуется версия iPhone >= 4 или новейшее поколение iPod touch, поскольку оно зависит от поддержки гироскопа.
  • При использовании Device Motion вы не должны использовать низкочастотную фильтрацию для извлечения гравитации, потому что это делается для вас.
  • Если вы хотите поддерживать старое оборудование, вам придется работать с необработанными данными. Это делается путем создания CMAccelerometerHandler и вызова startAccelerometerUpdatesToQueue:withHandler:. Затем вам нужно извлечь гравитацию с фильтрацией нижних частот, как в didAccelerate.
person Kay    schedule 20.07.2011
comment
Итак, вы знаете, что заменяет акселерометр: didAccelerate: ? Мое приложение использует его, но я хотел бы поддерживать приложение в iOS5, когда оно будет выпущено. Спасибо - person jcpennypincher; 21.07.2011
comment
@jcpennypincher: посмотрите обновленный ответ и перейдите по 3 ссылкам, указанным в указанном ответе (Простой iPhone...). - person Kay; 21.07.2011
comment
В то время, когда Кей писал этот ответ, самым новым iPod touch был iPod Touch 4. Согласно Apple, это базовые модели с поддержкой гироскопа: iPhone 4, iPad 2 и iPod Touch 4. Согласно моим исследованиям, если вы используете iOS 7 или более позднюю версию, то вы определенно используете устройство с возможностью гироскопа. iOS 6 поддерживалась iPhone 3GS, поэтому я считаю, что все устройства iOS 6 и ниже нужно тестировать на наличие гироскопа. - person henryaz; 29.09.2014