AFNetworking 的渐进式下载操作。我编写这个是为了支持在我的商业 iOS PDF 框架 PSPDFKit 中大型 PDF 的下载,但它适用于任何文件类型。
虽然 AFNetworking 已经支持文件下载,但这个类提供了额外的支持,以便恢复部分下载,使用临时目录,并具有一个特殊的块来帮助计算正确的下载进度。
AFDownloadRequestOperation 在选择正确的目标路径方面很智能。如果您设置了文件夹,则将使用下载 URL 的文件名,否则使用已设置的文件名。
AFDownloadRequestOperation 还将文件操作期间发生的任何 NSError 传递给错误块。
对于部分恢复的文件,进度代理需要额外的信息。服务器可能只有几个 totalByesExpected,但我们想显示包含先前进度的正确值。
[pdfRequest setProgressiveDownloadProgressBlock:^(NSInteger bytesRead, long long totalBytesRead, long long totalBytesExpected, long long totalBytesReadForFile, long long totalBytesExpectedToReadForFile) {
self.downloadProgress = totalBytesReadForFile/(float)totalBytesExpectedToReadForFile;
}];
临时文件夹将在首次访问时自动创建,但可以更改。默认为 `
针对 iOS 6+、AFNetworking 2.0 进行了测试,并使用 ARC。
AFDownloadRequestOperation 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。