如何从`MoyaError`获取错误statusCode?

我正在使用MoyaMoya_ModelMapperRxSwift来执行networking请求。 这是我的示例代码:

 let provider = RxMoyaProvider<MyEndpoint>() let observable: Observable<RegistrationResponse> = provider.request(.register(firstName: "", lastName: "", email: "", password: "")).mapObject(type: RegistrationResponse.self) observable.subscribe { [weak self] (event: Event<RegistrationResponse>) in switch event { case .next(let response): print(response) case .error(let error): print(error) case .completed: break } } 

一切工作正常,但我不知道如何得到一个错误代码,当我收到例如从服务器的409状态码响应types。 如果我打印错误,我会得到:

jsonMapping(Status Code: 409, Data Length: 0)

但我不知道如何通过代码获取这个状态码。 错误是一个枚举types的MoyaError 。 这是MoyaError的源代码 。

谢谢!

从评论中迁移

Moya错误不直接包含错误代码,它们包含MoyaResponses,而后者又包含错误代码。

第一种情况的错误,如MoyaError

 let moyaError: MoyaError? = error as? MoyaError 

可选的MoyaError将包含一个可选的响应,使用可选的链接,我们得到:

 let response : Response? = moyaError?.response 

最后我们可以得到响应的状态码。

 let statusCode : int? = response?.statusCode