CMMotionManager语言 - 只使用CMMotionManager获取标题



我已经设法使用CLLocationManager获得罗盘标题,但因为我的应用程序已经使用了CMMotionManager,我想仅使用CMMotionManager测量标题。

像所有苹果模糊的文档一样,你必须猜测如何使用他们的api。

我试着用这个来测量标题

[self.motionManager setMagnetometerUpdateInterval:1.0/30.0]; //30 Hz
[self.motionManager startMagnetometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMMagnetometerData *magnetometerData, NSError *error) {
    CMMagneticField compass = magnetometerData.magneticField;
    NSLog(@"x: %f  y:%f  z:%f", compass.x, compass.y, compass.z);
}];

问题是这个块只运行了几秒钟就停止运行了。

是否有任何例子如何衡量标题使用CMMotionManager独占?

谢谢。

显然最好的方法是使用CoreLocation,直到苹果公司创建合适的文档。

在没有实际尝试的情况下,我建议使用[NSOperationQueue mainQueue]代替currentQueue。通常,您只能在操作中调用currentQueue来获取对启动它的队列的引用。

我建议您不要呼叫start...UpdatesToQueue:withHandler:。这需要使用后台线程,并且管理起来非常棘手。你可能只是把所有东西都放在主线程上。这是一种先进的技术,你不需要它。

相反,只是start,然后使用NSTimer或类似的轮询CMMotionManager反复

相关内容

  • 没有找到相关文章

最新更新