Вопрос

Я сталкиваюсь с проблемой с некоторыми из моих кодов на iPhone3GS, работающем iOS5.0

Следующий блок никогда не выполняется, хотя на iPhone4 он называется прекрасно с iOS5.0.

Оператор журнала никогда не появляется, и точка останова никогда не запускается. Я проверил, и как менеджер движения, так и очередь не являются нулевыми.

  [motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {

            NSLog(@"motion event received");

//...
}];

Я что-то упускаю или мне нужно переписать свой код для работы без очередей за блоками?
Спасибо за любой вклад в USSUE!

Обновлять:

Я проверил этот метод, и он работает:

   [motionManager startAccelerometerUpdatesToQueue:motionQueue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {
        NSLog(@"accelerometerData event received");
    }];
Это было полезно?

Решение

Это не имеет ничего общего с очередями блоков. Я полагаю, что ваша проблема заключается в том, что события движения устройства требуют как акселерометра, так и гироскопа (и могут быть запрошены с помощью -deviceMotionAvailable), но у iPhone 3GS нет гироскопа. Таким образом, даже методы движения устройства на основе блока не будут работать для вас. Вы должны посмотреть, достаточно ли только акселерометр только для ваших нужд; В противном случае вам придется ограничить ваше приложение, требующим гироскопа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top