Привет всем - я написал некоторый код, который идентифицирует местоположение с помощью CLLocation, а затем преобразует это значение lat / long в город с помощью CLGeoCoder ().
Работает так, что код запускается, а id - это местоположение, за исключением того, что я в Нью-Йорке, и он продолжает идентифицировать меня как находящегося в Сан-Франциско!
Можете ли вы заметить какие-либо явные ошибки, которые я делаю в приведенном ниже коде?Спасибо!
import CoreLocation
class ViewController: UIViewController, CLLocationManagerDelegate {
let locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations[locations.count - 1]
if location.horizontalAccuracy > 0 {
locationManager.stopUpdatingLocation()
locationManager.delegate = nil
let geoCoder = CLGeocoder()
geoCoder.reverseGeocodeLocation(location, completionHandler:
{
placemarks, error -> Void in
guard let placeMark = placemarks?.first else { return }
if let locationName = placeMark.location {
print(locationName)
}
if let street = placeMark.thoroughfare {
print(street)
}
if let city = placeMark.subAdministrativeArea {
print(city)
}
if let zip = placeMark.isoCountryCode {
print(zip)
}
if let country = placeMark.country {
print(country)
}
})
}
}
}