4

我正在使用AFDownloadRequestOperation通过AFNetworking Framework下载文件,每当我在下载时暂停文件然后稍后恢复它时,setProgressiveDownloadProgressBlock在文件部分下载时从零开始返回totalBytesRead的值。因此,显示剩余文件调用百分比后的块setCompletionBlockWithSuccess

但是,我想在进度条中显示正确的进度,那么我应该如何获得下载文件的正确百分比?

4

1 回答 1

-1

这就是我用的

 [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
            NSLog(@"Operation%i: bytesRead               : %d", i, bytesRead);
            NSLog(@"Operation%i: totalBytesRead          : %lld", i, totalBytesRead);
            NSLog(@"Operation%i: totalBytesExpectedToRead: %lld", i, totalBytesExpectedToRead);

            if (totalBytesExpectedToRead > 0)
            {
                 self.progressView.progress = (float)totalBytesRead / totalBytesExpectedToRead;
            }
        }];

引入了检查,因为 totalBytesExpectedToRead 有时会变为 -1,这会破坏 progressview 进度的平滑性 [还请注意,NSUrlconnection 的问题是,hrrader 返回 -1 作为预期的读取大小]

(float)totalBytesRead / totalBytesExpectedToRead * 100给出百分比

于 2013-06-06T13:13:57.250 回答