我有一个协议(protocol) APIResponseHandler。其中有函数 handleResponse。它接受 responseData 和错误并返回 T。T 的类型将取决于它的实现,当响应为 JSON 时它将返回 Dictionary 或在某些情况下返回 NSData。知道我该怎么做
protocol APIResponseHandler {
func handleResponse<T>(responseData: NSData?, error: NSError?) -> (T?, NSError?)
}
最佳答案
你可以给 Swift 一个关于 T
是什么的提示:
protocol APIResponseHandler {
func handleResponse<T>(responseData: NSData?, error: NSError?) -> (T?, NSError?)
}
class MyClass: APIResponseHandler {
func handleResponse<T>(responseData: NSData?, error: NSError?) -> (T?, NSError?) {
print(T)
return (nil, nil)
}
}
let obj = MyClass()
// Telling Swift T is a [String: String] dictionary
let result: ([String: String]?, NSError?) = obj.handleResponse(nil, error: nil)
关于ios - 覆盖协议(protocol)泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37373110/