使用openAPI生成swift代码遇到的坑(ErrorResponse)

因为客户的要求,项目中使用了OpenAPI来生成swift代码
刚用的时候还不太会,给header加token还写在内部的addHeader方法里,后来才知道在OpenAPIClientAPI类里有一个叫customHeaders的静态变量,直接赋值就好

除了这个问题还遇到了错误解析的问题
想了各种办法,只要走了error回调,里面的errorCode 和data我都取不出来,控制台里可以打印出来。客户又不让修改生成出来的文件。

最后注意到返回的Error的类型是这样定义的

public enum ErrorResponse : Error {
    case error(Int, Data?, Error)
}

查了一下枚举里带括号的用法,这个用法叫做关联值(Associated Value)

用这种方法就可以取出其中的关联值啦

switch error {
    case .error(let errCode, let errData, let err):
        //xxxxx
}

还有一种用法效果也一样

if case let ErrorResponse.error(errCode, errData, err) = error {
    //xxxxx
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容