Swift - CLGeocoder reverseGeocodeUbicación finalizaciónCierre del controlador
Lo que intento hacer es pasar unCLLocation
a la funcióngetPlacemarkFromLocation
que luego usa el pasadoCLLocation
mediantereverseGeocodeLocation
para configurar elCLPlacemark?
Eso será devuelto.
Tengo problemas para crear elcompletionHandler
cierre enreverseGeocodeLocation
, arroja un error / bloqueo del compilador:
En Swift,CLGeocodeCompletionHandler
esCLGeocodeCompletionHandler = (AnyObject[]!, NSError!) -> Void
de acuerdo con la documentaciónAnyObject[]!
se supone que contieneCLPlacemark
objetos como la versión Objective-C.
Aquí está mi código actual:
class func getPlacemarkFromLocation(location:CLLocation)->CLPlacemark?{
var g = CLGeocoder()
var p:CLPlacemark?
g.reverseGeocodeLocation(location, completionHandler: {
(placemarks, error) in
let pm = placemarks as? CLPlacemark[]
if (pm && pm?.count > 0){
p = placemarks[0] as? CLPlacemark
}
})
return p?
}
EDITAR: Parece que el error tuvo que ver conplacemarks.count
conplacemarks
no ser tratado como una matriz. Ahora se compila, sin embargo, no obtengo nada más que nada cuando intento configurarp
dentro decompletionHandler
. He revisado elCLLocation
s se pasan y son válidos.
EDIT 2: después de imprimirplacemarks
, Puedo confirmar que devuelve datos. sin embargop
sigue volviendo nulo.