Проблема, с которой я сталкиваюсь, заключается в том, что после того, как я установил Широту и Долготу, значения исчезают, поэтому я вижу правильные значения в части geocodeAddressString, но когда дело доходит до StudentLocations, значений нет, только 0,00 для Широты и долгота, как я могу сохранить эти значения? Self.Lat и self.Long являются глобальными переменными вверху, и единственное место, где они используются, находится в этом забаве c ниже. В основном у меня есть форма пользовательского интерфейса с 4 текстовыми полями 1 для имени, 1 для фамилии, 1 для местоположения (город, штат) и 1 для URL, я хочу ввести свой город и увидеть координаты, это работает, но значение теряется.
fun c setNewLocationValues () -> StudentLocations {
let geocoder = CLGeocoder()
geocoder.geocodeAddressString(self.txtLocation.text!) { placemarks, error in
if error != nil {
print(error!)
}
if let placemark = placemarks?.first {
let coordinates: CLLocationCoordinate2D = placemark.location!.coordinate
self.lat = coordinates.latitude
self.long = coordinates.longitude
}
}
//let newcoordinates = CLLocationCoordinate2D(latitude: lat, longitude: long)
let locationInfo = StudentLocations(mapString: txtLocation.text!, mediaURL: txtURL.text! , firstName: txtFirstName.text!, lastName:txtLastName.text!, latitude: self.lat, longitude: self.long)
return locationInfo
}