`urlSession (_: downloadTask: didWriteData: totalBytesWritten: totalBytesExpectedToWrite:)` вызывается только один раз при загрузке чего-либо с использованием Alamofire - PullRequest
0 голосов
/ 20 мая 2019

Я использую alamofire, чтобы реализовать функцию загрузки. прогресс загрузки всегда равен 0, когда загрузка завершена, он становится равным 1. Поэтому, отлаживая код, я нахожу, что функция SessionDelegate (сопровождаемая URLSessionDownloadDelegate) urlSession(_:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:) вызывается только один раз, когда загрузка завершена. Я не знаю, почему, кто-нибудь может мне сказать?

Я пробовал в iphoneXr (iOS 12.2) 、 iphoneXs (iOS 12.2) 、 симулятор iphone7 (iOS 12.1), и у всех этих устройств было такое явление. Симулятор iphoneX (iOS 12.2) нормальный , он правильно вызвал функцию.

1 Ответ

0 голосов
/ 20 мая 2019

Если сервер не ответит заголовком Content-Length, URLSession (и, следовательно, Alamofire) не сможет рассчитать ход загрузки и будет обновляться только после завершения. Кроме того, если загрузка очень мала и загружается очень быстро, вы можете не увидеть никаких обновлений прогресса.

...