我一直在我的一个iOS项目中使用Alamofire,但最近在升级到Alamofire 3.0时,格式改变了返回结果.在我的情况下,我想调用一个登录API并让它返回结果.可能会发生一些错误,因此我总是在API结果中返回问题所在,所以如果响应为400,我希望我的代码进入失败块,然后将来自API的消息包含在内错误,但我似乎无法在结果失败时从请求中获取响应数据.
这是我的代码:
Alamofire.request(
method,
Constants.baseURL + route,
parameters: fullParameters)
.validate()
.responseJSON { response in
let json = JSON(response.result.value!)
switch response.result {
case .Success:
completion?(json["data"])
case .Failure(let errorData):
failure?(errorData, json["errmsg"])
}
}
Run Code Online (Sandbox Code Playgroud)
发生了什么,当响应失败时,它会因为response.result.value为零而中断,但我希望它是从API返回的JSON,无论如何.另一方面,当响应成功时,它可以完美地运行.