EDIT РЕШЕНИЕ: Как я и подозревал reverseGeocodeLocation
асинхронный, так что я должен был использоватьКак я могу использовать данные из reverseGeocodeLocation в swift?
dispatch_async(
dispatch_get_main_queue(), {
self.newAddress = address
})
Вы также должны ждать, пока переменная newAddress не обновляется, чтобы использовать его. Существует некоторое отставание, но это типичное время, примерно через секунду.
ORIGINAL:
Я пытаюсь использовать строку из CLGeocoder().reverseGeocodeLocation
послать к другому виду, когда аннотация на карте нажата. Однако обработчик существует в закрытии и его Void in
. Я пробовал String in
, но это не согласуется с протоколом.
Есть ли способ использовать данные из крышки?
Код для обратного геокодирования
func getReversedGeocodeLocation(){
CLGeocoder().reverseGeocodeLocation(newMeetupLocation, completionHandler: {(placemarks, error) -> Void in
if error != nil {
print("Reverse geocoder failed with error" + error!.localizedDescription)
return
}
if placemarks != nil {
if placemarks!.count > 0 {
let pm = placemarks![0]
self.name = pm.name! + "-" + pm.thoroughfare!
}
}
else {
print("Problem with the data received from geocoder")
}
})
}
Вы можете разместить больше кода? Вы пытаетесь отправить строку адреса? – chickenparm
добавил код. Мне просто нужно выяснить, как получить данные из закрытия. Я хочу иметь возможность использовать строку адреса. – ggworean