【发布时间】:2017-06-21 12:49:37
【问题描述】:
这里我有一个函数,它创建一个名为 T
的泛型类型的 DataResponseSerializerextension DataResponseSerializer {
static func mappableObjectSerializer<T: Mappable>() -> DataResponseSerializer<T> {...}
}
另外一个扩展有一个函数来做请求,它返回一个泛型类型叫做SuccessObjectType,在这个我调用上面的函数。
public extension DataRequest {
@discardableResult func requestObject<SuccessObjectType: Mappable>(onSuccess success: @escaping ((SuccessObjectType?) -> Void),
onFailure failure: @escaping ((NSError?) -> Void),
onCompletion completion: (() -> Void)? = nil) -> Self {
let responseSerializer = DataResponseSerializer<SuccessObjectType>.mappableObjectSerializer()
return response(queue: nil, responseSerializer: responseSerializer, completionHandler: { (response) in
switch response.result {...})
}
}
这个想法是将序列化程序与请求本身分离,这样我就可以在遗留项目上实现 UnitTest,但由于某种原因我得到了错误
无法推断通用参数“T”
上线:
let responseSerializer = DataResponseSerializer<SuccessObjectType>.mappableObjectSerializer()
【问题讨论】:
标签: ios swift generics alamofire