传入要与对象映射器一起使用的 class 类型

Pass in class type to be used with Object Mapper

我正在为 swift 使用对象映射器,运行 遇到了问题。

我有一个 API class 调用服务器并响应 json 响应。

现在,当我在此 API class 中调用 dataTask 函数时,我想传递 class 类型,我希望 json 响应映射到使用对象映射器。

func dataTask(method: String, type: AnyClass) {

    Mapper<AnyClass>().map(response)

}

我不确定如何传入 class 以与映射器一起使用,我已经尝试过泛型但不确定我是否正确实施了它。

func dataTask<T>(method: String, type: T.type) {
}

如有任何帮助,我们将不胜感激。

谢谢

您需要一个通用于任何 Mappable 类型的函数。本质上,这将为您使用它的每种类型 T 生成一个 dataTask(method:_:) 版本,这将调用适当版本的 Mapper().

func dataTask<T: Mappable>(method: String, _: T.Type) {
    Mapper<T>().map(response)
}

注意第二个参数,为了使其成为通用类型,需要添加“.Type”。