2012-02-17 2 views
1

Я бегу в проблему с некоторыми из моего кода на iPhone3GS работает iOS5.0Поддерживает ли iPhone3GS очереди блоков?

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

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

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

      NSLog(@"motion event received"); 

//... 
}]; 

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

Update:

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

[motionManager startAccelerometerUpdatesToQueue:motionQueue withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) { 
     NSLog(@"accelerometerData event received"); 
    }]; 

ответ

3

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

Смежные вопросы