iOS Swift中可编码属性的通用类型

Ekr*_*kra 10 ios swift codable

我需要获取一个用于解析JSON的结构的泛型变量

但是我得到的错误 类型'BaseJsonModel'不符合协议'Codable

下面是我的结构

  struct BaseJsonStruct<T>: Codable {
    let info: String
    let data: T
 }
Run Code Online (Sandbox Code Playgroud)

错误: - 类型'BaseJsonModel'不符合协议'Codable'

vad*_*ian 22

T 也必须符合 Codable

struct BaseJsonStruct<T : Codable> : Codable {
    let info: String
    let data: T
}
Run Code Online (Sandbox Code Playgroud)

  • 不,在您使用通用的那一刻,您必须**指定静态类型.`BaseJsonStruct <T>`是不可能的,它必须是`BaseJsonStruct <String>`或`BaseJsonStruct <Int>`或其他符合`Codable`的东西.`Codable`依赖于具体类型.解码器无法解码动态类型. (2认同)