比较 alamofire 返回的错误对象
Posted
技术标签:
【中文标题】比较 alamofire 返回的错误对象【英文标题】:compare error object return by alamofire 【发布时间】:2017-12-13 22:18:02 【问题描述】:我将 Alamofire 与 EVReflection 一起使用,如果 responseObject 无法将原始响应字符串解析为对象,response.error
将具有一些值,如果出现不同的错误,将设置不同的值。
不确定如何比较这些错误值,以处理不同的错误。
如果 JSON 解析出错,会输出 print(error)
FAILURE: Error Domain=com.alamofirejsontoobjects.error Code=1 "Data could not be serialized. Input data was not json." UserInfo=NSLocalizedFailureReason=Data could not be serialized. Input data was not json.
Alamofire.request(...)
.responseObject (response: DataResponse<UserData>) in
guard response.error == nil else
print(response.error)
return
【问题讨论】:
【参考方案1】:当您的请求失败时,您将收到来自 Alamofire 的 AFError
类型的错误。您实际上可以检查AFError.swift 文件以熟悉可能的值。这个文件对每个案例都有很好的文档。
由于 AFError 是一个错误,它是枚举类型,你可以检查如下:
switch err
case .parameterEncodingFailed(let reason):
// do something with this.
// If you want to know more - check for reason's cases like
// switch reason
// case .jsonEncodingFailed(let error):
// … // handle somehow
// case .propertyListEncodingFailed(let error):
// … // handle somehow
//
case .responseValidationFailed(let reason):
// do something else with this
…
对于每个reason
,您都有一些辅助函数,因此您可以获得更多信息。只需检查文档。
【讨论】:
以上是关于比较 alamofire 返回的错误对象的主要内容,如果未能解决你的问题,请参考以下文章