我遇到了运行iOS5.0的iPhone3GS上的一些代码问题
以下版块永远不会被执行,即使它在iOS5.0的iPhone4上被称为正常。
永远不会出现日志语句,并且永远不会触发断点。我检查过,运动管理器和队列都不为空。
[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");
}];
答案 0 :(得分:3)
这与块队列无关。我相信你的问题是设备运动事件需要加速度计和陀螺仪(并且可以用-deviceMotionAvailable
查询),但iPhone 3GS没有陀螺仪。因此,即使是非基于块的设备运动方法也不适合您。您应该研究一下加速度计是否足以满足您的需求;否则你将不得不限制你的应用程序需要陀螺仪。