我正在使用 Swift 4 从 Twitter 解码一些 JSON:
struct Tweet: Codable {
let id: String
let createdAt: Date
let text: String
enum CodingKeys: String, CodingKey {
case id = "id_str"
case createdAt = "created_at"
case text
}
}
let decoder = JSONDecoder()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "eee MMM dd HH:mm:ss ZZZZ yyyy"
decoder.dateDecodingStrategy = .formatted(dateFormatter)
let tweets = try decoder.decode([Tweet].self, from: data!)
我怎样才能做到这一点,这样我的代码就不必一直记住 set decoder.dateDecodingStrategy
。理想情况下,该Tweet
结构将通过dateFormatter
初始化为正确格式的常量静态成员变量来了解其日期格式。
我想我需要以init(decoder: Decoder)
某种方式使用,Tweet
但我不确定如何使用。