【问题标题】:Cannot Invoke 'responseObject' with an argument list of type (('WeatherResponse?, NSError?) -> Void无法使用类型为 (('WeatherResponse?, NSError?) -> Void 的参数列表调用“responseObject”
【发布时间】:2015-09-12 11:28:33
【问题描述】:

使用 Xcode 7.1 使用来自Github 的 AlamofireObjectMapper 框架。我无法使用 responseObject 处理程序。

下面是代码:

let url = "https://raw.githubusercontent.com/tristanhimmelman/AlamofireObjectMapper/f583be1121dbc5e9b0381b3017718a70c31054f7/sample_json"
    Alamofire.request(.GET, url).responseObject{(response :WeatherResponse?, error: NSError?) -> Void in
       print(response?.location)
        }

即使我从代码中删除 '-> Void' 也没有区别。 WeatherResponse 是一个自定义类,代码如下:

class WeatherResponse: Mappable {
var location: String?
var threeDayForecast: [Forecast]?

required init?(_ map: Map){

}

func mapping(map: Map) {
    location <- map["location"]
    threeDayForecast <- map["three_day_forecast"]
}
}

错误:

【问题讨论】:

  • 同样的问题?你找到解决办法了吗?

标签: ios alamofire


【解决方案1】:

responseObject 的方法签名是

public func responseObject<T: Mappable>(completionHandler: (T?, ErrorType?) -> Void) -> Self

请注意,错误参数是ErrorType?,而不是NSError?。调用闭包的正确方法是:

Alamofire.request(.GET, url).responseObject{(response: WeatherResponse?, error: ErrorType?) -> Void in
   print(response?.location)
}

请务必导入AlamofireAlamofireObjectMapperObjectMapper

【讨论】:

  • 我实现了你的代码的第二行......仍然是同样的错误......我是否还需要设置 responseObject 函数......
  • 你导入Alamofire、AlamofireObjectMapper和ObjectMapper了吗?
  • 我已经在 GitHub 上添加了我的示例项目。你能看看并帮助我吗? github.com/sahil25/AlamofireObjectMapper-Example
  • 无论出于何种原因,您都在WeatherResponse.swift (?) 中重新定义了Mappable 协议。删除该协议重新定义并应用我的答案中的建议解决了编译问题。
【解决方案2】:

在模型中导入 AlamofireObjectMapper 和 ObjectMapper 解决了我的问题

【讨论】:

    【解决方案3】:

    目前您可以使用 2.1 版:

    Alamofire.request(.GET, URL, parameters: nil)
        .responseObject({ (response: Response< WeatherResponse, NSError>) -> Void in
            if response.result.isSuccess {
                print(response.result.value)
            }
        })
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 2015-10-16
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多