我在玩 Swift 4 和Codable
一点点,并被一些嵌套协议的场景卡住了,这些协议都符合Codable
.
简化示例如下所示:
protocol CodableSomething: Codable {}
protocol CodableAnotherThing: Codable {
var something: CodableSomething { get }
}
struct Model: CodableAnotherThing {
var something: CodableSomething
}
此代码使用 Xcode 9 Beta 5 生成构建错误:
- 类型“模型”不符合协议“可解码”
- 类型“模型”不符合协议“可编码”
现在,我没想到会出现这些错误,因为我知道编译器会自动生成对这些协议的一致性,而事实上,如果没有构建错误,我什至无法手动实现这种一致性。我还尝试了几种不同的方法来解决这种嵌套模型结构,Codable
但我就是无法让它工作。
我的问题:这是一个编译器错误(它仍然是测试版)还是我做错了什么?