Geocodificación inversa de Google Maps para iOS

Tengo un problema con la codificación geográfica inversa de Google Maps cuando se trata de configurar el texto de UILabel en la dirección geocodificada inversa. El UILabel se usa en XIB como una ventana de información personalizada. Tengo otra ventana de información personalizada para otros datos que funciona correctamente, sin embargo, parece que cuando intento configurar el texto de la etiqueta dentro del controlador de devolución de llamada / finalización de geocodificación inversa, no funciona. Aquí está el código que tengo hasta ahora y lo he intentado de varias maneras, incluida la asignación a variables y no he podido hacer que nada funcione.

let infoWindow = NSBundle.mainBundle().loadNibNamed("InfoWindowCurrent", owner: self, options: nil)[0] as! InfoWindowCurrent
let geocoder = GMSGeocoder()
let coordinate = CLLocationCoordinate2DMake(Double(self.locLatitude)!, Double(self.locLongitude)!)

var currentAddress = String()

geocoder.reverseGeocodeCoordinate(coordinate) { response , error in
    if let address = response?.firstResult() {
        let lines = address.lines! as [String]

        currentAddress = lines.joinWithSeparator("\n")
    }
}

infoWindow.labelAddressStreet.text = currentAddress

return infoWindow

También he intentado esto:

let infoWindow = NSBundle.mainBundle().loadNibNamed("InfoWindowCurrent", owner: self, options: nil)[0] as! InfoWindowCurrent
let geocoder = GMSGeocoder()
let coordinate = CLLocationCoordinate2DMake(Double(self.locLatitude)!, Double(self.locLongitude)!)

geocoder.reverseGeocodeCoordinate(coordinate) { response , error in
    if let address = response?.firstResult() {
        let lines = address.lines! as [String]

        infoWindow.labelAddressStreet.text = lines.joinWithSeparator("\n")
    }
}

return infoWindow

Todo está conectado correctamente porque funciona el siguiente código:

let infoWindow = NSBundle.mainBundle().loadNibNamed("InfoWindowCurrent", owner: self, options: nil)[0] as! InfoWindowCurrent
let geocoder = GMSGeocoder()
let coordinate = CLLocationCoordinate2DMake(Double(self.locLatitude)!, Double(self.locLongitude)!)

geocoder.reverseGeocodeCoordinate(coordinate) { response , error in
    if let address = response?.firstResult() {
        let lines = address.lines! as [String]
    }
}

infoWindow.labelAddressStreet.text = "Unable to reverse geocode location!"

return infoWindow

Cualquier ayuda es definitivamente apreciada!

Respuestas a la pregunta(3)

Su respuesta a la pregunta