【发布时间】:2018-05-14 18:00:12
【问题描述】:
我有这个协议,
protocol PaginableItem {
var resultType: ResultType { get set }
}
具有枚举类型的单个属性,
enum ResultType: String, Codable {
case photo = "PHOTO"
case baseItem = "BASEITEM"
case new = "NEW"
}
我还有 3 个不同的结构和类符合 PaginableItem 和一个类有一些 PaginableItems,
final class TimelineModel: Codable {
let stream: String
let participants: String
let header1: PaginableList
let header2: PaginableList
let items: PaginableList
}
final class PaginableList: Codable {
let data: [PaginableItem]
let pagination: Pagination
}
我正在尝试使用 Swift 4 Codable 缓存 TimelineModel,但我不确定最好的方法。 Xcode 抱怨 PaginableItem 不符合 Codable。
ResultType中必须实现init(from decoder: Decoder) throws和encode(to encoder: Encoder) throws?
必须PaginableItem 也实现Codable 吗?
【问题讨论】:
-
能否在
PaginableList中添加Pagination项的声明
标签: swift enums swift4 codable