【问题标题】:Alamofire background fetch doesn't process fruther requestsAlamofire 后台获取不处理更进一步的请求
【发布时间】:2019-06-07 08:39:59
【问题描述】:

我想使用performFetchWithCompletionHandler 执行后台提取,显然以前的所有解决方案都不适合我。

奇怪的是我的第一个请求是可以的,但接下来的不是。

我尝试使用单例的 SessionManager,我还尝试将所有 Alamofire 请求出列到后台线程,并将 URLSessionManager 更改为 URLSessionConfiguration.background(withIdentifier: "com.test.background")

 group.enter()
 api.getClimateStateData(carId: carId, completion: { [weak self] response in
       guard let strongSelf = self else { return }
       climateModel = strongSelf.sortDataFromError(data: response)
       group.leave()
})
func getClimateStateData(carId: Int, completion: @escaping (ServiceResponse<ClimateStateModel>) -> Void) {
        let header: HTTPHeaders = ["User-Agent": UserAgentHelper.fullUserAgentString]
        request("/api/1/vehicles/\(carId)/data_request/climate_state", method: .get, parameters: nil, encoding: nil, headers: header).responseData { [weak self] response in
            guard let strongSelf = self else { return }
            completion(strongSelf.completionResponse(response))
     }
}
    @discardableResult private func request(
        _ path: String,
        method: HTTPMethod,
        parameters: Parameters? = nil,
        encoding: ParameterEncoding? = nil,
        headers: HTTPHeaders? = nil)
        -> DataRequest {
            let userEncoding = encoding ?? self.defaultEncoding
            print("Asking: " + path)
            return Service.sessionManager2.request("\(API)\(path)", method: method, parameters: parameters, encoding: userEncoding, headers: headers).validate()
}

我希望满足这些要求。

感谢您的宝贵时间!

【问题讨论】:

    标签: ios swift background alamofire


    【解决方案1】:

    我的错,这是由于self = nil。

    由于某些原因,self 被取消初始化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 2017-03-05
      • 2020-04-13
      • 1970-01-01
      • 2021-11-15
      • 2017-03-17
      • 2015-07-03
      相关资源
      最近更新 更多