質問

私はObjective-Cに比較的慣れていないので、それについてはまだあまり知らないので、おそらく本当にアマチュアっぽい質問であることをおaびします。

CLHeadingおよびCLLocationDirectionから磁気見出しを取得しようとしています。ただし、次のコード行ではコンパイルエラーが発生します。

locationLabel.text = [[[location course] magneticHeading] stringValue];

エラーは次のとおりです。

warning: invalid receiver type 'CLLocationDirection'  
error: cannot convert to a pointer type

ここで間違っていることを本当に理解していません。助けてください!

役に立ちましたか?

解決

コンパスを使用するために必要な手順は次のとおりです。

1)可用性を確認します。ロケーションマネージャーのheadingAvailableプロパティがYESの場合、コンパスを使用できます。

2)ロケーションマネージャーメソッド-(void) startUpdatingHeadingを使用して、検索している情報の受信を開始します

3)デリゲートメソッドを使用して実際にこの情報を取得します(自分をデリゲートとして設定することを忘れないでください)

 - (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading

これがお役に立てば幸いです。

他のヒント

magneticHeadingはCLLocationDirection型で、単純なプリミティブデータ型<!> quot; double <!> quot;のtypedefです。あなたの例では、オブジェクトではない何かにメッセージを送信しようとしています!次のように単純にdoubleをフォーマットする必要があります。

locationLabel.text = [NSString stringWithFormat:@"Heading %.3f", [[location course] magneticHeading]];

locationの割り当てと初期化の方法は? (CLLocationDirection *)(CLLocationDirection)ではなく<=>として定義されていることを確認してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top