传入类类型以与Object Mapper一起使用

时间:2016-08-17 16:50:00

标签: ios swift generics objectmapper

我正在使用swift的对象映射器并遇到了问题。

我有一个API类,它调用服务器并以json响应进行响应。

现在,当我在这个API类中调用dataTask函数时,我希望传递类型,我希望使用Object mapper将json响应映射到。

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

    Mapper<AnyClass>().map(response)

}

我不确定如何通过该类与mapper一起使用,我已经尝试过泛型但不确定我是否正确实现了它。

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

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:3)

您需要一个在任何Mappable类型上都是通用的功能。从本质上讲,这将为您使用的每种类型dataTask(method:_:)生成一个T版本,该版本将调用相应版本的Mapper()

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

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