小编Kir*_*tel的帖子

使用NSURLSessionDataTask显示文件下载进度

我想显示特定文件的文件下载进度(接收了多少字节).它适用于NSURLSessionDownloadTask.我的问题是我想用NSURLSessionDataTask实现相同的功能.

这是将文件接收到NSData并写入文档文件夹的代码:

NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];

NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: self delegateQueue: [NSOperationQueue mainQueue]];

NSURLSessionDataTask * dataTask = [defaultSession dataTaskWithURL:theRessourcesURL
    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error)
{ 
       if(error == nil)
       {

            NSString *docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

               NSString *pathToDownloadTo = [NSString stringWithFormat:@"%@/%@", docsDir, Name];

               NSLog(@"SIZE : %@",[NSByteCountFormatter stringFromByteCount:data.length countStyle:NSByteCountFormatterCountStyleFile]);

               [data writeToFile:pathToDownloadTo options:NSDataWritingAtomic error:&error];
       }
}];

[dataTask resume];
Run Code Online (Sandbox Code Playgroud)

我在写入或完成数据任务后收到文件大小(在收到文件后):

NSLog(@"SIZE : %@",[NSByteCountFormatter stringFromByteCount:data.length countStyle:NSByteCountFormatterCountStyleFile]);

但是我想显示它当前的字节接收状态,NSURLSessionDataTask可以实现吗?

ios nsurlsession nsurlsessionconfiguration nsurlsessiondownloadtask

25
推荐指数
4
解决办法
2万
查看次数