1

CLLocationManagerを使用してリージョンを監視していstartMonitoringForRegion:desiredAccuracy:ます。リージョンがロケーションマネージャのmonitoredRegionsに適切に追加されることは確かです。

これは、シミュレーターの位置が遠く(正確には2.3 km)に設定されているときに設定しました。次に、ホームボタンを押して、シミュレータの場所をジオフェンスを設定した場所に変更します。locationManager:didEnterRegion:呼び出されません。この場所に移動しようとしても同じ結果になりますが、別の場所から、この場所は4.3km離れています。

locationManager:didEnterRegion:が7 km以上の他の場所から移動すると呼び出されるため、取得できないしきい値があるようです。しかし、私のCLRegionの半径は100mです。ここで問題になる可能性があるのは何ですか?

4

1 に答える 1

2

これは本当に野蛮な推測ですが、これは、ロケーションマネージャが、一見飛び回っているロケーションで誤検知を軽減しようとした結果であるのではないかと思います。アプリの辞任中にシミュレーターで場所を変更すると、場所の更新として目的の精度に準拠していないように見える可能性があるため、実際に新しい地域に入ったかどうかを検討する際には無視されると思います。

シティバイクや高速道路のドライブをシミュレートして、違いが生じるかどうかを確認しましたか?できるだけ早くデバイスでテストしようと思います。

于 2012-07-24T05:14:14.187 に答える