问题描述

我们在 Swift 创建模型的时候,通常要实现系统的 Codable协议来支持模型的 encodedecode功能。

但是我们通常并不希望所有的属性都进行编码和解码,比如一些用于计算或者转换临时的私有属性。

class TestModel: Codable {
    var name:String?
    private var privateName:String?
}

比如上面的代码中的 privateName在一些情况下面就需要私有,不需要进行编码。

解决办法

private enum CodingKeys : String, CodingKey {
        case name
    }

我们实现私有的 CodingKeys属性,把需要进行编码和解码的属性添加进行就行。