【发布时间】:2023-03-14 09:43:02
【问题描述】:
我需要获取一个用于解析 JSON 的结构的通用变量
但是我遇到了一个错误 类型“BaseJsonModel”不符合协议“Codable”
下面是我的结构
struct BaseJsonStruct<T>: Codable {
let info: String
let data: T
}
错误:- 类型“BaseJsonModel”不符合协议“Codable”
【问题讨论】:
我需要获取一个用于解析 JSON 的结构的通用变量
但是我遇到了一个错误 类型“BaseJsonModel”不符合协议“Codable”
下面是我的结构
struct BaseJsonStruct<T>: Codable {
let info: String
let data: T
}
错误:- 类型“BaseJsonModel”不符合协议“Codable”
【问题讨论】:
T也必须符合Codable
struct BaseJsonStruct<T : Codable> : Codable {
let info: String
let data: T
}
【讨论】:
decoder.decode(BaseJsonStruct<String>.self, from: data
BaseJsonStruct<T> 是不可能的,它必须是BaseJsonStruct<String> 或BaseJsonStruct<Int> 或其他符合Codable 的东西。 Codable 依赖于具体类型。解码器无法解码动态类型。