-1

CLHeading を使用してコンパス値を取得しようとしていますが、

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

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

上記は結果を次のように与えます-

MagneticHeading 89.00 trueHeading +103.27 精度 5.00 x +1.375 y +41.875 z +37.438 @ 2010-01-18 10:18:37 +0800

しかし、私は MagneticHeading 値だけが必要なので、

コードを次のように変更します。

a)

newHeading.magneticHeading -> 結果が null になりました

b)

newHeading.trueHeading -> プログラムが受信したシグナル: 「EXC_BAD_ACCESS」。

誰でも助けてもらえますか、コンパスの値を取得するために他の可能な方法を試しています。

4

1 に答える 1

3

MagneticHeading と trueHeading はどちらも CLLocationDirection 型で、実際には double です。NSLog() を double にしたい場合は、オブジェクト用の「%@」ではなく、「%f」または「%.9f」を使用する必要があります。

于 2010-01-18T02:55:09.257 に答える