我正在使用 Codable 协议执行我的第一步,并在尝试将我的结构与自定义 getter 混合时遇到构建错误。我将如何解决这个问题。我必须编写自定义解码和编码函数吗?
struct MyStruct: Codable {
var variable: String? {
get { return variable?.lowercased() }
}
private enum CodingKeys: String, CodingKey {
case variable = "variable1"
}
}
更新:解决方法
我找到了一种解决方法,它不是最佳的,但它可以通过引入一个保存“真实”数据的私有变量来完成工作:
struct MyStruct: Codable {
private var _variable: String?
var variable: String? {
get { return _variable?.lowercased() }
}
private enum CodingKeys: String, CodingKey {
case _variable = "variable1"
}
}