Я предполагаю, что вы используете физическое устройство, а не симулятор для проверки этого, и вы не выбрали опцию для имитации местоположения в xcode.Иногда менеджер CLLocation может вернуть, например, старое кэшированное местоположение, так что, возможно, именно это и произошло с вами.Прежде чем что-либо делать с полученным объектом CLLocation, я рекомендую проверить его свойства horizontalAccuracy и timestamp.
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
guard let lastLocation = locations.last, lastLocation.horizontalAccuracy < 1000, abs(lastLocation.timestamp.timeIntervalSinceNow) < 60 else {
// location not accurate or to old (cached previously) so do not do anything
return
}
// do something
}