【发布时间】:2021-07-08 06:17:38
【问题描述】:
所以我有一个可编码的结构(或者是)
struct Person {
let name: String //<-- Fine
let age: Int //<-- Fine
let location: String //<-- Fine
let character: Character. //<-- Here comes the error (Type Person does not conform to Decodable)
}
enum Character {
case nice, rude
}
现在我明白了这个错误。除了枚举之外的所有类型都是可编码的,所以在那之前我都很好。现在作为解决这个问题的一种方法..我很确定这会奏效..
extension Person {
private enum CodingKeys: CodingKey { case name, age, location }
}
但即使在告诉 Swift 我想要解码的属性之后,我仍然会收到此错误?困惑。
【问题讨论】:
-
你只需要这个
enum Character: String, Codable -
考虑不要调用您的枚举 Character - 字符串中的单个字母已经有一个名为 Character 的类型。或者你可以将 Character 嵌套在 Person 中,这样你就会拥有 Swift.Character 和 Person.Character