-1

我正在尝试使用 CLHeading 来获取罗盘值,

- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading {
 if (curHeading != nil)
  [curHeading release];

 curHeading = newHeading;
 NSLog(@"%@",curHeading);
 [curHeading retain];
}

以上给出的结果为 -

磁航向 89.00 真航向 +103.27 准确度 5.00 x +1.375 y +41.875 z +37.438 @ 2010-01-18 10:18:37 +0800

但我只需要磁头值,所以

我将代码更改为:

一种)

newHeading.magneticHeading -> 得到结果为空

b)

newHeading.trueHeading -> 程序接收到的信号:“EXC_BAD_ACCESS”。

任何人都可以帮忙,我只是尝试用其他可能的方式来获得罗盘值。

4

1 回答 1

3

MagneticHeading 和 trueHeading 都是 CLLocationDirection 类型,实际上是一个 double。如果你想 NSLog() 一个 double,你必须使用 "%f" 或 "%.9f",而不是 "%@",它是用于对象的。

于 2010-01-18T02:55:09.257 回答