繁体   English   中英

覆盖协议通用方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM