Поддерживает ли iPhone3GS очереди блоков?
У меня проблема с некоторыми кодами на 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");
}];
1 ответ
Это не имеет ничего общего с очередями блоков. Я полагаю, что ваша проблема в том, что события движения устройства требуют как акселерометра, так и гироскопа (и могут быть запрошены с помощью -deviceMotionAvailable
), но у iPhone 3GS нет гироскопа. Таким образом, даже не основанные на блоках методы перемещения устройства не будут работать для вас. Вы должны посмотреть, достаточно ли одного акселерометра для ваших нужд; в противном случае вам придется ограничить ваше приложение, чтобы потребовать гироскоп.