iPhone/iPad中的指南针真实标题

Sol*_*ola 12 iphone ipad ios compass-geolocation

我在iPhone/iPad指南针开发方面遇到了一些问题.

从CLHeading中取出的真正的标题总是给我'-1'值,我被困在这里.这是我的代码:

self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.delegate = self;
self.locationManager.headingFilter = 0.5; //1 degrees
[self.locationManager startUpdatingHeading];
Run Code Online (Sandbox Code Playgroud)

我也发现了一些东西,就是当我在地图应用程序或指南针应用程序中使用位置的东西时,trueHeading值突然读取正确.我想知道是什么原因,任何想法?它发生在iPhone4和iPad上.

每当我在设置中关闭位置服务并重新启用它时,它也会发生,它将无法读取正确的trueHeading值,我想知道因为我创建的应用程序无法启用位置服务?

无论如何,提前谢谢

---我的解决方案---

见下文.

小智 7

为避免标题保持返回-1.000000,不是JUST运行startUpdatingHeading而是一起运行startUpdatingLocation,这会有所帮助.


Sol*_*ola 2

---我的解决方案---

[self.locationManager startUpdatingLocation]我所做的是,在之前或之后添加[self.locationManager startUpdatingHeading];(当定位服务关闭并从“设置”中重新启用时)。我不确定这是否是一个好的解决方案,但这就是我为使其发挥作用所做的,如果您有更好的解决方案,请分享。