Фоновая выборка Alamofire не обрабатывает дальнейшие запросы - PullRequest
0 голосов
/ 07 июня 2019

Я хотел бы выполнить фоновую выборку с помощью performFetchWithCompletionHandler, очевидно, все предыдущие решения не сработали для меня.

Странно то, что мой первый запрос в порядке, но следующие не верны.t.

Я пытался использовать синглтон 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()
}

Я бы хотел, чтобы эти запросы были выполнены.

Спасибо за время!

1 Ответ

0 голосов
/ 18 июня 2019

Плохо, это было из-за self = ноль.

По некоторым причинам, self был деинит.

...