我无法从核心运动管理器获取加速度计数据…我按照文档,它仍然无法正常工作:(
self.manager = [[CMMotionManager alloc] init]; self.manager.accelerometerUpdateInterval = 0.01; [self.manager startAccelerometerUpdates]; CMAccelerometerData *newestAccel = self.manager.accelerometerData; int x,y,z; x = newestAccel.acceleration.x; y = newestAccel.acceleration.y; z = newestAccel.acceleration.z;
任何帮助将非常感谢!!
解决方法
我设法使用块工作,这是我设法工作的代码:
NSOperationQueue *theQueue = [[NSOperationQueue alloc] init]; _returnedData = [[CMAccelerometerData alloc] init]; _motionManager = [[CMMotionManager alloc] init]; [_motionManager startAccelerometerUpdatesToQueue:theQueue withHandler:^(CMAccelerometerData *accelerometerData,NSError *error) { _returnedData = _motionManager.accelerometerData; int x = _motionManager.accelerometerData.acceleration.x; int y = _returnedData.acceleration.y; NSLog(@"X: %i,Y: %i",x,y); }];
您可以直接从CAMotionManager访问accelerometerData.accelleration,也可以创建CMAccelerometerData的实例并将变量分配给它.希望这可以帮助.