ほとんどの場合、開発者は古いキャッシュされた場所をフィルタリングする方法を尋ねていますが、私は反対のことに興味があります-古い場所を保存して取得する方法:) これが私のケースです: アプリに天気予報をダウンロードしている天気画面があります現在地の場合。アプリが起動するとすぐに、1 km の精度で標準の位置情報の更新を開始し、受信した位置情報をロケーター クラスのプライベート メンバーに保存します。アプリが場所の更新を受信しない場合は、既知の以前の場所を表示する必要があります ([CLLocationManager の場所] から取得するなど)。
問題はiPad2です。私のアプリはデバイスを再起動せずに約 1 週間実行されますが、[CLLocationManager location] は非常に頻繁に nil を返します。たとえば、昨日 iPad で Google マップ アプリを開いたところ、「場所を特定できません」というメッセージが表示されたため、アプリで [CLLocationManager location] が nil を返しました。次に、Googleマップアプリで場所の矢印アイコンを押すと、Googleマップアプリに現在の場所が表示されました. また、[CLLocationManager location] はアプリ内の場所を返しました。ただし、同じ問題が今日も続いています - [CLLocationManager location] は再び nil を返します。そのため、CLLocationManager はしばらくするとロケーション キャッシュを破棄し、デバイスと一緒に移動していない場合、既知の以前のロケーションは取得されないと思います。これを回避し、CLLocationManager が nil の場合に任意の場所を取得するように強制する方法はありますか?