【问题标题】:I'm using coding keys in swift but it's giving this error [closed]我正在快速使用编码键,但它给出了这个错误[关闭]
【发布时间】:2020-01-15 11:22:02
【问题描述】:

我需要读取放在我的包中的 CSV 文件,当我解码每一行时它有不同的列名,我想将它映射到我的自定义对象结构上,因为我试图使用编码键但它不起作用,请看一下,如果我需要更改任何内容,请告诉我

【问题讨论】:

  • 你的意思是'CodingKey'
  • 你应该edit你的问题以minimal reproducible example的形式包含所有相关代码作为文本,使用正确的代码格式而不是截图。
  • 你在CodingKeys中添加了一个额外的s
  • 编码键用于映射,如果 json/csv 行有一些奇怪的名称,那么您可以使用编码键将该名称映射为一些有意义的名称
  • 问题已解决,编码键以绿色书写。使用我自己的codingkeys名称自动完成并与apple提供的原始codingkey混合,这就是它显示错误的原因。下面的第一条评论显示,当我删除它开始正常工作时,名称中有一个额外的 S。感谢所有试图指导我的人

标签: swift enums codable


【解决方案1】:

你需要替换成CodingKey

private  enum CodingKeys: String, CodingKey {

【讨论】:

  • 他的 CodingKeys 颜色是绿色的。我认为他有一个带有 CodingKeys 名称的枚举。像这样: enum CodingKeys: String, CodingKey { case data = "data" }
  • 错字问题是作为题外话关闭问题的原因。
【解决方案2】:

没有协议名为CodingKeys,而是CodingKey

【讨论】:

    【解决方案3】:

    如果您从NSObject, Decoable 继承CSVModel,则无需使用CodingKeys 进行分配

    【讨论】:

      【解决方案4】:

      你的问题不清楚。请给我看你的“CodingKeys”代码。 我认为您的“CodingKeys”具有字符串和 CodingKey。并且您必须从“codingKeys”中删除“String”。这个错误告诉你再次使用 String。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-06
        • 2015-07-21
        相关资源
        最近更新 更多