gpt4 book ai didi

json - 在方法体 中使用泛型参数

转载 作者:行者123 更新时间:2023-11-28 06:03:24 25 4
gpt4 key购买 nike

我正在尝试创建如下的通用方法:

private func map<T>(type:T, jsonString:String) -> T
{
do
{
let model = try Mapper<type>().map(JSONString: jsonString)!
return model
}
catch
{
Log.error("Failed to convert JSON jsonString to model object: \(jsonString)")
}
return EmptyModel()
}

但它会导致编译错误:错误:使用了未声明的类型“类型”

如何更改它以将指定类型(类对象)与 Mapper 的通用值一起使用?

最佳答案

您可以使用 T 代替 type:

let model = try Mapper<T>().map(JSONString: jsonString)!

您可能想要更改方法签名,因此它返回 T 的实例而不是类型 T 本身:

private func map<T>(type: T.Type, jsonString: String) -> T

也就是说,Swift 已经有了它的 JSONDecoder。它可能已经支持您正在尝试实现的内容。

let decoder = JSONDecoder()
let model = try decoder.decode(Model.self, from: data)

关于json - 在方法体 <T> 中使用泛型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48901272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com