测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2016年7月 |
由 yangfeiyu 维护。
依赖于 | |
AFNetworking | ~> 2.0 |
AFDownloadRequestOperation | >= 0 |
FCUUID | >= 0 |
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;
}];
临时文件夹将在第一次访问时自动创建,但可以更改。默认为 <app directory>tmp/Incomplete/
。系统将定期清理临时目录;因此,如果时间间隔不长,则恢复将成功。
此内容针对 iOS 6+,AFNetworking 2.0 和 ARC 进行了测试。
AFDownloadRequestOperation 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。