字典不能转换为Void
嗨,大家好我一直在寻找网没有太多的运气,但我试图绕过Alamofiresasynchronous性。 我试图返回作为字典的JSON响应,但Xcode是给我“字典不能转换为'虚空'”
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 } }
任何帮助将不胜感激。
您正在返回test: Dictionary<String,AnyObject>
封闭,而不是从homePageDetails
方法的test: Dictionary<String,AnyObject>
。 closures返回types是Void
,这就是为什么你得到这个错误。
我自己并没有使用Alamofire,但Alamofire.request
好像是非阻塞的呼叫。 如果是这样你不能从这个函数返回。 你可以使用像完成closures。 未经testing的概念:
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) } }