1

ユーザーが初めて現在の場所を使用しようとすると、map.userslocation プロパティの座標は 0,0 になります。次にマップを含むビューをロードすると、ユーザーの場所が常に見つかります。

viewDidLoad で map.showsUserLocation プロパティを YES に設定しています。地図が画面に読み込まれると青い点が表示されますが、map.userlocation.coorinate で座標を取得しようとすると、0,0 になります。

プログラム フローは次のようになります -(void) viewDidLoad: 1) showUserLocation を YES に設定します 2) タイマーを設定して、6 秒後に map.userLocation プロパティからユーザーの位置を取得するメソッドを呼び出します

-(void) getUsersLocation 1) ユーザーの場所を出力します

このプロセスは、ビューを初めてロードした後はうまく機能しますが、ビューが初めてロードされ、ユーザーが自分の位置を使用する許可を与える必要がある場合、座標は 0,0 に戻ります

なぜこれが起こるのか、どうすれば回避できるのか、誰にも分かりますか?

ありがとう!

4

2 に答える 2

2

任意に 6 秒待つのではなく、実装CLLocationManagerDelegateしていつ気付くべきかを確認する必要があります。

locationManager:didUpdateToLocation:fromLocation:

が呼び出されて最初の位置情報の更新が行われますが、それよりも多少時間がかかる場合があります。

于 2009-12-15T06:54:58.123 に答える
1

David の言う通りですが、そのメソッドがロケーション 0,0 で呼び出されることがあることに気付きました。アプリがアフリカ西海岸沖の海で使用されている可能性があると思われる場合を除き、そのような電話は無視してください。

于 2009-12-17T13:34:33.110 に答える