Я хочу написать функцию для обратного геокодирования местоположения и присвоить полученную строку переменной. После this поста я получил что-то вроде этого:Невозможная строка возврата из CLGeocoder reverseGeocodeLocation
extension CLLocation {
func reverseGeocodeLocation(completion: (answer: String?) -> Void) {
CLGeocoder().reverseGeocodeLocation(self) {
if let error = $1 {
print("[ERROR] \(error.localizedDescription)")
return
}
if let a = $0?.last {
guard let streetName = a.thoroughfare,
let postal = a.postalCode,
let city = a.locality else { return }
completion(answer: "[\(streetName), \(postal) \(city)]")
}
}
}
}
Для вызова этой функции я только что получил что-то вроде этого:
location.reverseGeocodeLocation { answer in
print(answer)
}
Но вместо этого я хочу, чтобы присвоить значение строки answer
в переменная, и я не знаю, как передать эти данные из закрытия. Каков наилучший способ сделать что-то подобное?
Вы отправили свои Ответ, пока я сочинял мой. Вы избивали меня за несколько секунд ... :) –
Lol. Сожалею. Возможно, у Stack Overflow должна быть функция, для которой вы знаете, если кто-то сейчас набирает ответ (вроде Skype или некоторых платформ чата) ... – Rob
Спасибо! Решила проблему ✌️ –