【问题标题】:Swift: Alamofire Value of type 'Self' (Request) has no member 'responseJSON' extensionSwift:“Self”(请求)类型的 Alamofire 值没有成员“responseJSON”扩展
【发布时间】:2018-11-27 07:38:16
【问题描述】:

我在这里创建了一个Request的扩展,代码如下:

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?

【问题讨论】:

    标签: swift alamofire


    【解决方案1】:

    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)
                    }
            }
        } 
    }
    

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

    【讨论】:

      猜你喜欢
      • 2016-12-12
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-09-18
      • 1970-01-01
      相关资源
      最近更新 更多