编码协议的计算属性

问题描述 投票:0回答:0

我有一些我想在我的每个响应模型中编码的属性。我想创建一个可用于类和结构的解决方案。为此,我创建了一个协议,其中包含我所有的共享属性(作为计算属性)。我希望它们使用要使用该协议扩展的类/结构进行编码。

这是我的协议

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)
   }

}

我也尝试过不实现编码方法,但没有用。

ios swift protocols codable
© www.soinside.com 2019 - 2024. All rights reserved.