如何通过NSError的domain和code确定对应的AFError?
如何通过Domain和Code确定具体的AFError类型
要确定Domain为Alamofire.AFError、Code为8对应的具体错误,直接查看Alamofire源码中AFError.swift里的枚举定义即可:
- 找到
AFError枚举,它的每个成员都对应一个rawValue(即你拿到的Code值) - Code=8对应的枚举成员是
parameterEncodingFailed(reason: ParameterEncodingFailureReason),翻译为参数编码失败。这个错误的具体原因由关联值ParameterEncodingFailureReason细分,比如参数为nil、编码过程抛出异常、目标URL无效等场景。
你也可以在代码中将捕获到的NSError转换回AFError类型,通过分支匹配获取详细信息:
if let afError = error as? AFError { switch afError { case .parameterEncodingFailed(let reason): // 根据具体reason处理错误 print("参数编码失败原因:\(reason)") default: // 处理其他AFError类型 break } }
内容的提问来源于stack exchange,提问作者Peter Lapisu
相关产品推荐
相关产品推荐

