Извлеките Alamofire, рассчитанное время, оставшийся файл и размер загруженного файла. - PullRequest
2 голосов
/ 16 марта 2019

Я пытаюсь загрузить файл с помощью 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 всегда равен нулю.

1 Ответ

0 голосов
/ 16 марта 2019

Если вы проверяете класс Progress , который вы можете найти

open var totalUnitCount: Int64
open var completedUnitCount: Int64

, вы можете использовать эти переменные

...