Я пытаюсь загрузить файл с помощью Alamofire. Чтобы показать прогресс, я использую downloadProgress от alamofire. Я получил процент прогресса от этого. Но мне нужно показать общее количество загруженных к настоящему времени Мб / Кбайт и оставшееся время. Вот мой код:
AF.download("http://ipv4.download.thinkbroadband.com/200MB.zip",
method: .get,
parameters: nil,
encoding: URLEncoding.default,
headers: nil,
interceptor:nil,
to: destination)
.downloadProgress { progress in
self.postProgress(progress: progress)
}
.responseData { response in
if let data = response.result.value {
// let image = UIImage(data: data)
}
}
Публикация прогресса с помощью уведомления
func postProgress(progress: Progress) {
NotificationCenter.default.post(name: .DownloadProgress, object: progress)
}
Отображение моего прогресса с использованием следующих кодов
if let progress = notification.object as? Progress {
progressBar.setProgress(Float(progress.fractionCompleted), animated: true)
progressInNumberView.text = "\(Int64(progress.fractionCompleted*100))%"
remianingView.text = "\(progress.fileCompletedCount) / \(progress.fileTotalCount)"
if let estimatedTimeRemaining = progress.estimatedTimeRemaining {
remianingView.text = format(estimatedTimeRemaining)
}
}
Я получаю прогресс. Фракция завершена идеально. Но progress.estimatedTimeRemaining, progress.fileCompletedCount и progress.fileTotalCount всегда равен нулю.