我想知道,如果我将数据从API解码为模型类的泛型类型,是否可以访问泛型类型的嵌套值。抱歉英语不好。
对于映射数据对象的快速类有数据类,这是一个泛型类型
struct GeneralResponse<T: Decodable>: Decodable {
var code: String
var dataResponse : T
}
dataResponse字段中映射的模型类。
struct Model: Decodable {
var name: String
var lname: String
}
将数据从API映射到对象(发送类型的模型)
var myStruct = try! JSONDecoder().decode(GeneralResponse<T>.self, from: jsonData)
在APIManager中调用方法
APIManager.callRequest(url: "someURL", type: Model.self)
在这种情况下,我想访问“name”或“lname”,但它不能。
你可以试以下..。
do {
let myStruct = try JSONDecoder().decode(GeneralResponse<Model>.self, from: jsonData)
print(myStruct.dataResponse.name)
print(myStruct.dataResponse.lname)
} catch {
print("error: \(error)")
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。