我有一个协议 A 并且有多个符合协议 A 的结构体。我需要在一个集合中存储不同的结构体对象。但是我的集合类型是由另一个服务预定义的,该服务类型为 - class Storage
任何想法都会有所帮助
class Storage<Value: Codable>{}
protocol A {}
struct Type1: A, Codable, Equatable, Comparable {}
struct Type2: A, Codable, Equatable, Comparable {}
let storage = Storage<A>() // Throws error - Type 'A' does not conform to protocol 'Decodable'
答案 0 :(得分:1)
使用基础类
class Storage<Value: Codable>{}
protocol A {}
class Type: A, Codable {}
class Type1: Type, Equatable, Comparable {}
class Type2: Type, Equatable, Comparable {}
let storage = Storage<Type>()