【问题标题】:Cannot automatically synthesize 'Encodable' because 'Error' does not conform to 'Encodable'无法自动合成 'Encodable',因为 'Error' 不符合 'Encodable'
【发布时间】:2019-06-07 08:48:10
【问题描述】:

您好,我们在 Api 管理层中使用了 codeble,我们正在尝试使用可编码和可解码的模型来设置模型,

在一种情况下,我们的响应模型中有错误,我们如何处理它

这里是示例代码

 struct Address : Codable {

        var street: String
        var zip: String
        var city: String
        var error: Error

        private enum CodingKeys : String, CodingKey {
            case street, zip = "zip_code", city, state
        }
    }

我们遇到了错误

Cannot automatically synthesize 'Encodable' because 'Error' does not conform to 'Encodable'

我们如何处理编码中的错误类型?

【问题讨论】:

  • 错误就是它所说的。 Error 是一个协议。您无法编码/解码协议,因此您必须编写自定义 init / encode 方法来处理类型。
  • 你的结构中可能不应该有Error。检索Address 的函数应返回Result<Address,Error>
  • 尝试从 json4swift.com 格式化您的数据以获取可编码。

标签: ios swift api codable


【解决方案1】:

为什么在这个结构中需要一个 Error 属性?

如果 api 响应成功,您可以发送您的 Address 模型,如果 api 响应失败,您可以发送 Error 模型,您也可以创建自己的从 Error 继承的错误模型。

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多