Выпуск IOS5 имеет эту основную функцию устарел. Кто-нибудь знает, что придет ему на смену? Я предполагаю, что Apple не собирается удалять акселерометр из iPhone 5.
Почему акселерометр: didAccelerate: устарел в IOS5?
Ответы (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
Итак, вы знаете, что заменяет акселерометр: didAccelerate: ? Мое приложение использует его, но я хотел бы поддерживать приложение в iOS5, когда оно будет выпущено. Спасибо
- person jcpennypincher; 21.07.2011
@jcpennypincher: посмотрите обновленный ответ и перейдите по 3 ссылкам, указанным в указанном ответе (Простой iPhone...).
- person Kay; 21.07.2011
В то время, когда Кей писал этот ответ, самым новым 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