Я новичок в программировании, и мой вопрос в том, как вернуть данные переменных типа CLLocationCoordinate2D в Coordinates, то есть в тип структуры.Пытаясь разработать приложение для погоды.
У меня есть структура:
struct Coordinates {
let latitude: Double
let longitude: Double
}
Мой код выглядит следующим образом:
//getting coordinates from String
func getCoordinateFrom(address: String, completion: @escaping(_ coordinate: CLLocationCoordinate2D?, _ error: Error?) -> () ) {
CLGeocoder().geocodeAddressString(address) { placemarks, error in
completion(placemarks?.first?.location?.coordinate, error)
}
}
//When the User type his city, coordinates have type of CLLocationCoordinate2D
@IBAction func changeCityButtonPressed(_ sender: UIButton) {
guard let address = textField.text else { return }
getCoordinateFrom(address: address) { coordinate, error in
guard let coordinate = coordinate, error == nil else { return }
DispatchQueue.main.async {
print(coordinate)
}
}
}
У меня есть константа и Моя задача - передать координаты из функции в эту константу.
let coordinates = Coordinates(latitude: 00.617366, longitude: 37.617366)
Проблема в том, что эти координаты в функции находятся в замыкании.Поэтому я не могу вернуть их и т. Д. Я пытаюсь найти правильный ответ, но безрезультатно.У кого-нибудь есть совет / решение?