大家好,我一直在网上搜索没有太多运气,但我试图绕过Alamofires的异步性质。我试图将JSON响应作为字典返回,但是Xcode给了我"字典不能转换为' 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
}
}
非常感谢任何帮助。
答案 0 :(得分:9)
您将从关闭而不是test: Dictionary<String,AnyObject>
方法返回homePageDetails
。闭包返回类型为Void
,这就是您收到此错误的原因。
我自己没有使用过Alamofire,但是Alamofire.request
似乎是非阻塞电话。如果是这样你就无法从这个功能返回。你可以使用像完成闭包这样的东西。未经测试的概念:
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)
}
}