符合 class 到 swift4 中的可编码协议

Conforming class to codable protocol in swift4

使结构符合 Codable(可编码和可解码)协议非常简单:只需声明它即可。但是,如果我想让 class 符合 Codable,我是否必须编写所有锅炉代码(CodingEnum、init(来自解码器:Decoder)、编码(到编码器:Encoder)等)?

不,你不必这样做。示例:

import Foundation

class Message: Codable {
    let id: Int = 1
    let text: String = "Hello"
}

let message = Message()
let encoder = JSONEncoder()
let json = try encoder.encode(message)
print(String(data: json, encoding: String.Encoding.utf8)!)