我如何使枚举可编码?

问题描述 投票:1回答:1

我想将enum嵌套在struct内,但又嵌套了Codable。如何使枚举codable并因此使struct可编码?

这里是我所拥有的一个例子:

struct Person: Codable {
  var firstName: String
  var lastName: String 
  var favoriteColor: Color

  enum Color {
    case blue, red, green, yellow, pink, purple
  }
}

然后,我得到两个错误:

类型“人”不符合协议“可解码”

类型“人”不符合协议“可编码”

如何解决此问题?

编辑

我也尝试过使颜色符合Codable。 Xcode添加了以下协议存根:

init(from decoder: Decoder) throws {
  <#code#>
}
func encode(to encoder: Encoder) throws {
  <#code#>
}

我将如何处理?

ios swift xcode enums encode
1个回答
1
投票
 struct Person: Codable {
      var firstName: String
      var lastName: String
      var favoriteColor: Color
 }

 enum Color: String, Codable {
    case blue, red, green, yellow, pink, purple
 }
© www.soinside.com 2019 - 2024. All rights reserved.