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 elCLLocations se pasan y son válidos.

EDIT 2: después de imprimirplacemarks, Puedo confirmar que devuelve datos. sin embargop sigue volviendo nulo.

Respuestas a la pregunta(6)

Su respuesta a la pregunta