我正在浏览教程并尝试向属性列表发出alamofire
请求。在响应属性列表的闭包中,我使用参数(_, _, result)
。但是,XCode给出了错误:
无法转换类型'(_,_,_) - >的值虚空'预期的论点 类型'响应 - >空隙'
我正在使用alamofire 3.0
测试版。
答案 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)
}
}
我希望这对你有所帮助。