Это ХОРОШО задокументировано в документации Apple.Только если диспетчер местоположений запущен с «startMonitoringSignificantLocationChanges», вы можете получить его.
Так, например:
1) в делегате приложения запустите одноэлементный GeoLocationManager.shared.locationManager, поэтому при перезапуске
2) при обратном вызове:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
{
обновите вашу позицию
она будет возвращаться в случае сбоя.Я думаю, что вы уже установили il plist:
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
примечание: добавьте код для конфиденциальности, так как ios9 является обязательным ..
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
...
}
И в plist:
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Needed to track on maps even if background</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Needed to track on maps even if background</string>