У меня есть метод, который загружает (видео) данные на сервер, и он выглядит следующим образом:
static func upload(video data:Data, named name:String, parameters:[String:Any], toUrl url:URL, progress:@escaping (Double)->Void, completion:@escaping(Bool)->Void){
manager = Alamofire.SessionManager(configuration: URLSessionConfiguration.background("com.app.backgroundtransfer")
manager.upload(multipartFormData: { (multipartFormData) in
multipartFormData.append(data, withName: "filedata", fileName: name, mimeType: "video/quicktime")
for key in parameters.keys{
if let val = parameters[key] as? String{
multipartFormData.append(val.data(using: .utf8, allowLossyConversion: false)!, withName: key)
}
}
}, to: url) {
(encodingResult) in
switch encodingResult {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (uploadProgress) in
progress(uploadProgress.fractionCompleted)
//this one stops getting called
})
upload.responseJSON { response in
// but this one gets called at the end.
}
case .failure(let encodingError):
print(encodingError)
}
}
}
Так что проблема в том, что я не могу должным образом обновить пользовательский интерфейс при возврате из фона (покав середине загрузки).
Почему этот обратный вызов прогресса перестает работать (после возврата из фона)?