NSURLSession有NSURLSessionDataTask
和NSURLSessionDownloadTask
,而且我更喜欢数据粉丝,因为我不需要从文件系统中检索它。
NSURLSessionDownloadTaskDelegate有一种检索下载进度的方法,尽管它看起来并不像数据库那样。如果我想要下载进度,我是否需要使用NSURLSessionDownloadTask
?
如果是这样,我了解NSURLSessionDownloadTask
存储下载的文件,然后检索它。这个存储文件的目录是否需要偶尔清空,或者它是否只是一个临时存储,在访问它之后(或很快就会被删除)?
答案 0 :(得分:0)
我会使用 AFNetworking 。 AFHTTPRequestOperation 允许您设置跟踪进度的块。
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:YOUR_URL_REQUEST];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
{
// Completion code.
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
// Error handling code.
}];
以下是跟踪进度的方法:
[operation setDownloadProgressBlock:^(NSInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite)
{
float progress = ((float)((int)totalBytesWritten) / (float)((int)totalBytesExpectedToWrite));
// Track the progress here
}];