使用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"]
}
}
错误:
答案 0 :(得分:0)
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)
}
请务必导入Alamofire
,AlamofireObjectMapper
和ObjectMapper
。
答案 1 :(得分:0)
导入AlamofireObjectMapper&amp; Model中的ObjectMapper解决了我的问题
答案 2 :(得分:0)
目前使用版本2.1,您可以使用:
Alamofire.request(.GET, URL, parameters: nil)
.responseObject({ (response: Response< WeatherResponse, NSError>) -> Void in
if response.result.isSuccess {
print(response.result.value)
}
})
祝你好运!