Alamofire响应属性列表

3
我正在学习教程,尝试使用alamofire请求属性列表。在响应的闭包中,我使用参数(_, _, result)。然而,XCode 给了我一个错误:

无法将'(_, _, _) -> Void'类型的值转换为预期的参数类型'Response -> Void'

我正在使用alamofire 3.0 beta。
2个回答

1
这对我很有效,如果对您无效,请将您的代码粘贴到检查问题中。
var params : Dictionary<String,String> = ["key":"value"]
Alamofire.request(.POST, "someURL" ,parameters: params).responseJSON()
{
    response in

    let data = JSON(response.result.value!)

    if(data != nil)
    {
        var status = data["status"] as? String
    }
}

1
Alamofire目前是版本3.3,根据存储库中的发布情况,自版本3.0以来已有一些更改。
如果您使用响应处理程序,则闭包应如下所示:
Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
     .response { request, response, data, error in
         print(request)
         print(response)
         print(data)
         print(error)
      }

如果你使用例如 响应JSON处理程序,现在所有内容都封装在 response 中,就像这段代码一样:

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
     .responseJSON { response in
         print(response.request)  // original URL request
         print(response.response) // URL response
         print(response.data)     // server data
         print(response.result)   // result of response serialization

         if let JSON = response.result.value {
             print("JSON: \(JSON)")
         }
     }

或者,您可以使用以下代码更轻松地处理:

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
     .responseJSON { response in
         switch(response.result) {
         case .Success(let value):
            if let JSON = value {
              print("JSON: \(JSON)")
            }
         case .Failure(let error):
            print(error.description)    
         }
     } 

我希望这能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接