字典不能转换为Void

时间:2014-09-30 10:29:55

标签: ios swift alamofire

大家好,我一直在网上搜索没有太多运气,但我试图绕过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
    }
}

非常感谢任何帮助。

1 个答案:

答案 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)
    }
}