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

标签 swift alamofire

我有一个名为 APIManager 的类的扩展:

import Alamofire
import Foundation

// MARK: - Logout
extension APIManager {

    public func performLogout() {
        let request = defaultManager.request(APIManager.Router.Logout.URLRequest)

        request.response( // ERROR ON THIS LINE AS NOTED BELOW
            queue: APIManager.responseQueue,
            responseSerializer: Request.stringResponseSerializer(),
            completionHandler: { [weak self] (response)  in
                guard let strongSelf = self else { return }

            }
        )
    }

}

当扩展包含在同一文件中的 APIManager 类下时,没有任何问题。

但是,当我将扩展名移到新文件中时,我收到此错误:

Cannot call value of non-function type 'NSHTTPURLResponse?'

很明显,当扩展名放在另一个文件中时,编译器将上面定义的 Alamofire/ResponseSerialization.swift 方法与 Alamofire Request 类的 Alamofire/Request.swift 中的 'response' 属性混淆

APIManager类如下:

public final class APIManager {

  // MARK: - Singleton shared instance
  static let sharedInstance = APIManager()

  let defaultManager: Alamofire.Manager = {
    let serverTrustPolicies: [String: ServerTrustPolicy] = [

        "TBD1": .PinCertificates(
            certificates: ServerTrustPolicy.certificatesInBundle(),
            validateCertificateChain: true,
            validateHost: true
        ),

        "TBD2": .DisableEvaluation
    ]

    let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
    configuration.HTTPAdditionalHeaders = Alamofire.Manager.defaultHTTPHeaders

    return Alamofire.Manager(
        configuration: configuration,
        serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies)
    )
  }()
}

这里有一个类似的问题,但不太一样:

Cannot call value of non-function type 'NSHTTPURLResponse?' Alamofire ObjectMapper

最佳答案

如果这正如您所说,在另一个文件中工作正常,我会想到一些建议。

  • 将您要扩展的类标记为公共(public)类。 (Swift 类默认是内部的。)
  • 打开类右侧的文档检查器 Pane ,确保您的目标成员包括您正在编译的目标。

如果您的问题仍然存在,请告诉我,我会进一步调查。

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

相关文章:

ios - 快速背景颜色动画循​​环

xml - 强类型 xml 属性组合的提示(构建器)

swift - 更改 SKSpriteNode 子类的纹理?

swift - 如何使用alamofire在ios中传递访问 token

json - 保存 json 响应并将其解析为 swift 对象

ios - ios 11.0.3无法上传图片

swift 3 : Need to pass data to next view controller without moving to it

快速导入机制

macos - "Application is agent"在 Swift 中不起作用

ios - 如何使用 Alamofire 在多部分表单数据中附加数组?