返回响应中的错误'无法调用非函数类型'NSHTTPURLResponse?'的值与斯威夫特 3

Posted

技术标签:

【中文标题】返回响应中的错误\'无法调用非函数类型\'NSHTTPURLResponse?\'的值与斯威夫特 3【英文标题】:error in return response 'cannot call value of non-function type 'NSHTTPURLResponse?' with Swift 3返回响应中的错误'无法调用非函数类型'NSHTTPURLResponse?'的值与斯威夫特 3 【发布时间】:2017-02-27 11:02:16 【问题描述】:

我也阅读了其他问题的答案,但无法解决:

我尝试了以下方式,但在 返回响应(responseSerializer:responseSerializer,completionHandler:completionHandler)

请帮助我们如何在以下方法中添加@escaping。

public func JSONResponseObject<T: ResponseObjectSerializable>(_ completionHandler: @escaping (DataResponse<T>) -> Void) -> Self 
    let responseSerializer = DataResponseSerializer<T>  request, response, data, error in
        guard error == nil else  return .failure(error!) 


        let jsonResponseSerializer = DataRequest.jsonResponseSerializer(options: .allowFragments)
        let result = jsonResponseSerializer.serializeResponse(request, response, data, nil)

        print("result: \(result.value)")

        switch result 
        case .success(let value):

            let json = JSON(value)
            print("JSON: \(json)")

            if let
                response = response,
                let responseObject = T(response: response, representation: value as AnyObject)
            

                return .success(responseObject)
             else 

                let error = Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(error: -6006 as! Error)

                return .failure(error as! Error)
            
        case .failure(let error):

            let json = JSON(error)
            print("JSON: \(json)")

            return .failure(error)
        
    
    return response(responseSerializer: responseSerializer,completionHandler: completionHandler)

【问题讨论】:

【参考方案1】:

我现在通过以下方式解决了

我设置了 extension DataRequest 而不是在 extension Request

【讨论】:

以上是关于返回响应中的错误'无法调用非函数类型'NSHTTPURLResponse?'的值与斯威夫特 3的主要内容,如果未能解决你的问题,请参考以下文章

无法调用非函数类型 HTTPURLResponse 的值?

错误:无法调用非函数类型的值

Swift 3 错误“无法调用非函数类型 'UITableView!' 的值” [关闭]

SwiftUI:列表错误无法调用非函数类型'Binding<Subject>'的值

无法调用非函数类型“HTTPURLResponse”的值?

无法调用非函数类型“URL”的值