迁移到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.lock
,Alamofire
的版本确实是4.0。我已经为所有目标和项目构建了针对iOS9.0的设置。
有人可以帮帮我吗?把头发撕掉了一点!
答案 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)