iPhone 3.0コンパス:見出しを取得する方法?
-
20-08-2019 - |
質問
私は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)
ではなく<=>として定義されていることを確認してください。