为什么我无法在Alamofire 4.0中使用SessionManager初始化或发出请求? (修订版)

时间:2016-09-22 06:03:38

标签: ios swift alamofire

迁移到Alamofire 4,我正在尝试初始化会话管理器,如下所示:

let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 20
configuration.httpAdditionalHeaders = ["MyCompany-User-Agent": Config.MyCompanyUserAgentDataString]
var alamoManager: SessionManager = Alamofire.SessionManager(configuration: configuration)

但是我一直收到错误

  

无法使用参数列表调用SessionManager   type(配置:URLSessionConfiguration)

我遵循https://github.com/Alamofire/Alamofire#modifying-the-session-configuration的语法,但我的错误。我在这做错了什么?我也无法通过SessionManager提出请求。

例如:

Alamofire.request(url, method: .get, parameters: parameters, encoding: JSONEncoding.default).responseObject { (response: DataResponse<MyCustomResponse>) in
            if let result = response.result.value {} }

使用问题,但是(其中alamoManager是SessionManager):

alamoManager.request(url, method: .get, parameters: parameters, encoding: JSONEncoding.default).responseObject { (response: DataResponse<MyCustomResponse>) in
            if let result = response.result.value {} }

它不起作用。我收到错误

  

SessionManager类型的值没有成员请求

非常困惑我为什么会收到这个错误。文档清楚地显示了使用请求方法的SessionManager对象的示例。

我注意到,如果我创建项目,此代码没有任何问题。但是在我现有的项目中会显示这些错误。我检查了Podfile.lockAlamofire的版本确实是4.0。我已经为所有目标和项目构建了针对iOS9.0的设置。

有人可以帮帮我吗?把头发撕掉了一点!

1 个答案:

答案 0 :(得分:0)

我建议您使用Alamofire的默认标题初始化额外的标题:

    // Adding Headers:
var defaultHeaders = Alamofire.SessionManager.defaultHTTPHeaders
defaultHeaders["MyCompany-User-Agent"] = Config.MyCompanyUserAgentDataString
    // adding Configuration:
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = defaultHeaders 
configuration.timeoutIntervalForRequest = 20
var alamoManager: SessionManager = Alamofire.SessionManager(configuration: configuration)