我有Application
2 个变量的协议。而且我有component
一个结构,它有一个变量,它确认Application
协议。我需要将其保存struct
在磁盘中。所以我正在确认它的Codable
协议。这样做时,我遇到了这样的错误,
“协议类型‘应用程序’不能符合‘可解码’,因为只有具体类型才能符合协议”
这是我的代码,
public protocol Application {
var name : String {get}
var ownerName : String {get}
}
public struct component : Codable {
let application : Application
private enum CodingKeys: String, CodingKey {
case application
}
public init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
application = try values.decode(Application.self, forKey: .application)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(application, forKey: .application)
}
}
我是 swift 新手,如果我遗漏了一些非常明显的东西,我很抱歉。我无法解决这个问题,我需要一些正确方向的帮助。先感谢您。