我创建了一个请求扩展,代码如下:

extension Request {

    public func responseIDEA(completionHandler: (AnyObject?, String?) -> Void) -> Self {
            self.responseJSON() { response in
                if response.result.error != nil {
                    completionHandler (nil, response.result.error!.localizedDescription)
                }else {
                  completionHandler(response.result.value?.valueForKey("Data"), response.result.value?.valueForKey("Message") as? String)
                }
        }
    }
}

但我有一个错误:
类型“self”的值没有成员“responseJSon”
为什么我不能得到回应?

最佳答案

responseJSON在两个扩展中声明—一个在DataRequest中声明,另一个在DownloadRequest中声明。
由于Request是这两个类的超类,Request没有responseJSON方法。
DataRequestDownloadRequest创建两个扩展名:

extension DataRequest {

    public func responseIDEA(completionHandler: (AnyObject?, String?) -> Void) -> Self {
            self.responseJSON() { response in
                if response.result.error != nil {
                    completionHandler (nil, response.result.error!.localizedDescription)
                }else {
                  completionHandler(response.result.value?.valueForKey("Data"), response.result.value?.valueForKey("Message") as? String)
                }
        }
    }
}

extension DownloadRequest {

    public func responseIDEA(completionHandler: (AnyObject?, String?) -> Void) -> Self {
            self.responseJSON() { response in
                if response.result.error != nil {
                    completionHandler (nil, response.result.error!.localizedDescription)
                }else {
                  completionHandler(response.result.value?.valueForKey("Data"), response.result.value?.valueForKey("Message") as? String)
                }
        }
    }
}

或者,如果你只需要其中一个,就写一个。

10-08 05:27