如何使枚举可编码?

4 xcode enums encode ios swift

我有一个嵌套的enuma 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
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,我收到两个错误:

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

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

我该如何解决这个问题?

编辑

我也尝试过使 Color 符合 Codable。Xcode 添加了这些协议存根:

init(from decoder: Decoder) throws {
  <#code#>
}
func encode(to encoder: Encoder) throws {
  <#code#>
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

πte*_*ter 5

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

enum Color: String, Codable {
   case blue, red, green, yellow, pink, purple
}
Run Code Online (Sandbox Code Playgroud)