Alamofire回复物业清单

时间:2016-03-27 15:06:45

标签: xcode swift alamofire property-list

我正在浏览教程并尝试向属性列表发出alamofire请求。在响应属性列表的闭包中,我使用参数(_, _, result)。但是,XCode给出了错误:

  

无法转换类型'(_,_,_) - >的值虚空'预期的论点   类型'响应 - >空隙'

我正在使用alamofire 3.0测试版。

2 个答案:

答案 0 :(得分: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 :(得分:1)

Alamofire现在根据存储库中的版本在3.3版本中,因为版本3.0已经有所改变。

在你使用Response Handler你的闭包需要看起来像这样:

Alamofire.request(.GET, "https://httpbin.org/get", parameters: ["foo": "bar"])
     .response { request, response, data, error in
         print(request)
         print(response)
         print(data)
         print(error)
      }

如果您使用Response JSON Handler,那么现在所有内容都封装在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)    
         }
     } 

我希望这对你有所帮助。