NSURLSessionDataTask与NSURLSessionDownloadTask有什么区别

Tos*_*lji 25 objective-c ios nsurlsession nsurlsessiondownloadtask nsurlsessiontask

在最新的苹果中引入新NSURLSession的替换NSURLConnection,所以在有不同的任务,那么有什么区别NSURLSessionDataTask,NSURLSessionDownloadTask

以及在哪种情况下使用NSURLSessionTask和在哪里NSURLSessionDownloadTask

Tos*_*lji 49

NSURLSessionDataTask:数据任务使用NSData交换数据.后台会话不支持NSURLSessionDataTask.

数据任务使用NSData对象发送和接收数据.数据任务旨在用于从应用程序到服务器的简短,通常是交互式请求.数据任务可以在收到每个数据后一次一个地将数据返回给您的应用程序,或者通过完成处理程序一次性返回数据.由于数据任务不会将数据存储到文件中,因此后台会话不支持它们.

NSURLSessionDownloadTask:NSURLSessionDownloadTask直接将响应数据写入临时文件.它支持应用程序未运行时的后台下载.

下载任务以文件的形式检索数据,并在应用程序未运行时支持后台下载.

我想下面的图片会给你更好的知识:

在此输入图像描述

  • @Honey NSURLSessionDataTask 将其存储在内存中。 (2认同)

zad*_*adr 19

文档回答了这个问题,但是:

  • NSURLSessionDownloadTask 将文件下载到磁盘,然后将生成的文件保存在以后使用的位置.
  • NSURLSessionDataTask 将文件下载到内存中,由您决定如何处理响应.