描述:
我定义了一个协议
protocol HttpBase{
// 定义一个泛型函数
func objectMapper<T>()->T;
}
/========================
我在另外一个文件的函数中怎么调用这个函数,用了各种方法都失败了。
func fetchObjects(mapper:HttpBase,offset:Int, num:Int)->[T]{
var i = 10
//这个地方我用了各种方式去,最终结果都败了。
mapper.objectMapper()
return objects
}
我的问题是:我改怎么使用这个泛型函数?
解决方案1:
使用typealias
protocol HttpBase {
typealias SomeType
// 定义一个泛型函数
func objectMapper() -> SomeType
}
在子类中:
class SubClass<T>: HttpBase {
typealias SomeType = T
func fetchObjects(mapper:HttpBase, offset:Int, num:Int) -> [T] {
...
}
}
这样就可以了