EDIT Lösung: Wie ich vermutete reverseGeocodeLocation
ist asynchron, also musste ich wartenWie kann ich die Daten von reverseGeocodeLocation in swift verwenden?
dispatch_async(
dispatch_get_main_queue(), {
self.newAddress = address
})
Sie müssen auch verwenden, bis die newaddress Variable, es zu benutzen aktualisiert wird. Es gibt eine Verzögerung, aber es ist typische Zeit, etwa eine Sekunde.
ORIGINAL:
Ich versuche, den String aus CLGeocoder().reverseGeocodeLocation
zu verwenden, um einem anderen Ansicht zu senden, wenn eine Anmerkung auf der Karte gedrückt wird. Der Handler existiert jedoch in einem Closure und dessen Void in
. Ich habe versucht String in
, aber das ist nicht mit dem Protokoll.
Gibt es eine Möglichkeit, die Daten von der Schließung zu verwenden?
-Code für Reverse Geocoding
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")
}
})
}
Können Sie mehr aus Ihrem Code schreiben? Versuchen Sie eine Zeichenfolge der Adresse zu senden? – chickenparm
hat den Code hinzugefügt. Ich muss nur herausfinden, wie man Daten aus einer Schließung holt. Ich möchte die Zeichenfolge der Adresse verwenden können. – ggworean