時間の経過とともにユーザーの場所を記録しようとしています。ユーザーが移動中の場合は正常に機能し、デリゲートメソッドdidUpdateToLocationが確実に呼び出されます。ただし、ユーザーが静止していてアプリがバックグラウンドで実行されている場合、しばらくするとデリゲートメソッドは呼び出されなくなります。再起動するには、アプリをフォアグラウンドで購入する必要があります。アクティブになると、デリゲートメソッドが再び確実に呼び出されます。
これは、CLLocationManagerオブジェクトがViewController内で宣言されていることが原因である可能性があると当初は考えていたため、AppDelegate内で宣言されるように変更しましたが、どちらも役に立ちませんでした。
また、distanceFilterプロパティを試してみましたが無駄になりました。現在、Viewコントローラー内から次のコードを使用して設定しています。オブジェクト自体は、AppDelegateオブジェクトで宣言および初期化されることに注意してください。
app.locationManager.delegate = self;
app.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
app.locationManager.distanceFilter = kCLDistanceFilterNone;
[app.locationManager startUpdatingLocation];
他の誰かがこの問題に遭遇しましたか?任意のポインタをいただければ幸いです。私はこれに数日間苦労しています。