如何从 iOS 上的 Core Motion 获取数据

Chr*_*Lin 5 xcode objective-c ios

我无法从核心运动管理器获取加速度计数据……我按照文档进行操作,但仍然无法正常工作:(

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;
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

Car*_*ith 5

我设法使用块使其工作,这是我设法开始工作的代码:

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);
}];
Run Code Online (Sandbox Code Playgroud)

您可以直接从 CAMotionManager 访问 accelerometerData.accelleration 或通过创建 CMAccelerometerData 的实例并将变量分配给它。希望这可以帮助。