gpt4 book ai didi

swift - 无法调用非函数类型的值 'NSHTTPURLResponse?' Alamofire ObjectMapper

转载 作者:IT王子 更新时间:2023-10-29 05:53:02 27 4
gpt4 key购买 nike

无法调用非函数类型“NSHTTPURLResponse?”的值? enter image description here

有人可以帮我吗?

这是代码

   public func responseObject<T: Mappable>(queue: dispatch_queue_t?, keyPath: String?, completionHandler: (NSURLRequest, NSHTTPURLResponse?, T?, AnyObject?, ErrorType?) -> Void) -> Self {

return response(queue: queue, responseSerializer: Request.JSONResponseSerializer(options: NSJSONReadingOptions.AllowFragments)) { request, response, result in
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
let parsedObject = Mapper<T>().map(keyPath != nil ? result.value?[keyPath!] : result.value)

dispatch_async(queue ?? dispatch_get_main_queue()) {
completionHandler(self.request!, self.response, parsedObject, result.value ?? result.data, result.error)
}
}
}
}

我的错,我没有注意到 Alamofire 2.0 的返回类型,

这是固定的,更新的代码在这里

public func responseObject<T: Mappable>(queue: dispatch_queue_t?, keyPath: String?, completionHandler: (NSURLRequest, NSHTTPURLResponse?, T?, AnyObject?, ErrorType?) -> Void) -> Self {

let serializer = Request.JSONResponseSerializer(options: NSJSONReadingOptions.AllowFragments)

return response(queue: queue, responseSerializer: serializer) { (Response) -> Void in

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
let parsedObject = Mapper<T>().map(keyPath != nil ? Response.result.value?[keyPath!] : Response.result.value)



dispatch_async(queue ?? dispatch_get_main_queue()) {
completionHandler(self.request!, self.response, parsedObject, Response.result.value ?? Response.result.value, Response.result.error)
}
}

}
}

最佳答案

我自己也遇到过这个错误,花了一段时间才弄清楚为什么会这样。看起来如果 response() 方法调用的参数与任何方法声明都不匹配,那么 swift 会假定您的代码引用的是 response 属性,一个 NSHTTPURLResponse。因为存在“遮盖”方法名称的属性,swift 无法帮助您解决指示哪个参数有问题的错误,它只是与任何方法匹配。

在我的例子中,completionHandler 由于它的 参数不匹配。请注意,我看到的示例代码 .response { response in ... } 是有问题的。没有像 responseStringresponseJSON 等方法那样采用“response in”闭包的 response 方法。

也就是说,Abh ,我无法通过查看您的代码的确切问题来判断。

关于swift - 无法调用非函数类型的值 'NSHTTPURLResponse?' Alamofire ObjectMapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32932748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com