我有一些我想在我的每个响应模型中编码的属性。我想创建一个可用于类和结构的解决方案。为此,我创建了一个协议,其中包含我所有的共享属性(作为计算属性)。我希望它们使用要使用该协议扩展的类/结构进行编码。
这是我的协议
protocol BaseMainRequestable: Codable { }
extension BaseMainRequestable {
var encryptionkey: String? {
get {
return BaseMainRequestHandler.shared.baseMainRequestConfigs?.encryptionkey
}
set {
BaseMainRequestHandler.shared.baseMainRequestConfigs?.encryptionkey = newValue
}
}
}
这是我的课
class TestModel: BaseMainRequestable {
var testProperty: String?
init(testProperty: String) {
self.testProperty = testProperty
}
required init(from decoder: Decoder) throws {
fatalError("init(from:) has not been implemented")
}
enum CodingKeys: CodingKey {
case testProperty
}
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeIfPresent(testProperty, forKey: .testProperty)
}
}
我也尝试过不实现编码方法,但没有用。