我正在使用 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但我不确定如何使用。