Ios 如何从“MoyaError”获取错误状态代码?

Ios 如何从“MoyaError”获取错误状态代码?,ios,swift,alamofire,rx-swift,moya,Ios,Swift,Alamofire,Rx Swift,Moya,我正在使用Moya、Moya\u模型映射器和RxSwift执行网络请求。 下面是我的示例代码: let provider = RxMoyaProvider<MyEndpoint>() let observable: Observable<RegistrationResponse> = provider.request(.register(firstName: "", lastName: "", email: "", password: "")).mapObject(typ

我正在使用
Moya
Moya\u模型映射器
RxSwift
执行网络请求。 下面是我的示例代码:

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
    }
}
let provider=RxMoyaProvider()
let observable:observable=provider.request(.register(firstName:,lastName:,email:,password:).mapObject(类型:RegistrationResponse.self)
可观察的{
中的[弱自我](事件:事件)
切换事件{
案例。下一步(让我们回答):
打印(答复)
案例错误(let error):
打印(错误)
案件.已完成:
打破
}
}
一切正常,但我不知道当我从服务器接收到例如
409
状态代码响应类型时如何获取错误代码。 如果我打印错误,我将得到:

jsonMapping(状态代码:409,数据长度:0)

但我不知道如何一个代码一个代码地获取状态代码。错误是
MoyaError
,它是一种枚举类型。这是一个莫亚错误


谢谢

从注释迁移

Moya错误不直接包含错误代码,它们确实包含MoyaResponse,而MoyaResponse又包含错误代码

第一种情况下,错误为MoyaError

let moyaError: MoyaError? = error as? MoyaError
可选MoyaError将包含一个可选响应,使用我们得到的可选链接:

let response : Response? = moyaError?.response
最后,我们可以得到响应及其状态代码

let statusCode : int? = response?.statusCode

对于那些有nilmoyaError.response的人,这里有一种获取errorCode

 if let error = ((error as? MoyaError)?.errorUserInfo["NSUnderlyingError"] as? Alamofire.AFError)?.underlyingError as? NSError, error.domain == NSURLErrorDomain, error.code == NSURLErrorNotConnectedToInternet || error.code == NSURLErrorTimedOut || error.code == NSURLErrorNetworkConnectionLost {
                   print("not connected")
      }

error.response.statuscode
可能就是它吗?因为响应确实包含状态代码。错误包含响应。
(错误为!MoyaError)。响应?.statusCode
有效!非常感谢!!你的回答救了我的命。。。万分感谢!!我有错误(超时)和
moyaError。响应
为零。我如何检查它的确切错误?