[英]Override protocol generic method
我有一个协议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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.