【发布时间】:2018-06-06 15:31:58
【问题描述】:
以下代码无法编译:
enum Occupation: String {
case designer = "Designer"
case engineer = "Engineer"
}
public struct SteveJobs: Codable {
let name: String
let occupation: Occupation
}
另一方面,它应该编译,因为Occupation 表示为String,即Codable。
为什么我不能在Codable 结构中使用带有原始值的enum?
特别是为什么自动一致性在这种情况下不起作用。
【问题讨论】:
-
提示:如果您单击红色八边形(带有 '!'),Xcode 将显示与该诊断相关的任何注释,在这种情况下:“无法自动合成 'Decodable' 因为'Occupation' 不符合 'Decodable'”和“无法自动合成 'Encodable',因为 'Occupation' 不符合 'Encodable'”。
-
谢谢,在这种情况下很明显,是职业造成了麻烦。
标签: ios swift enums swift-protocols codable