El dictionary no es convertible a Void

Hola chicos, he estado buscando en la networking sin mucha suerte, pero estoy tratando de moverme por la naturaleza asíncrona de Alamofires. Estoy intentando devolver la respuesta JSON como un dictionary pero Xcode me está dando "El dictionary no es convertible a 'Void'"

func homePageDetails(userName:String) -> (Dictionary<String,AnyObject>){ let username = userName let hompePageDetails = Alamofire.request(.GET, "http://example.com/API/Bunch/GetHomePageDetails/\(username)/").responseJSON{(request, response, JSON, error) in print(JSON) var test = JSON as Dictionary<String,AnyObject> return test } } 

Cualquier ayuda sería muy apreciada.

Está devolviendo la test: Dictionary<String,AnyObject> desde el cierre y no desde el método homePageDetails . El tipo de retorno de cierre es Void , es por eso que obtiene este error.

No he usado Alamofire, pero Alamofire.request parece una llamada sin locking. Si es así no puede regresar de esta function. Puede usar algo como cierre de finalización. Concepto no probado:

 func homePageDetails(userName:String, completion:(Dictionary<String,AnyObject>) -> Void) { let username = userName let hompePageDetails = Alamofire.request(.GET, "http://example.com/API/Bunch/GetHomePageDetails/\(username)/").responseJSON{(request, response, JSON, error) in print(JSON) var test = JSON as Dictionary<String,AnyObject> completion(test) } }