如果我想使用NSURLSession获取图像下载的进度,我是否必须使用下载方法而不是数据?

时间:2014-02-19 22:15:24

标签: ios objective-c cocoa-touch nsurlsession nsurlsessiondownloadtask

NSURLSession有NSURLSessionDataTaskNSURLSessionDownloadTask,而且我更喜欢数据粉丝,因为我不需要从文件系统中检索它。

NSURLSessionDownloadTaskDelegate有一种检索下载进度的方法,尽管它看起来并不像数据库那样。如果我想要下载进度,我是否需要使用NSURLSessionDownloadTask

如果是这样,我了解NSURLSessionDownloadTask存储下载的文件,然后检索它。这个存储文件的目录是否需要偶尔清空,或者它是否只是一个临时存储,在访问它之后(或很快就会被删除)?

1 个答案:

答案 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

}];