在最新的蘋果中引入新的NSURLSession
代替NSURLConnection
,所以在這裏有不同的任務,那麼NSURLSessionDataTask
,NSURLSessionDownloadTask
有什麼區別?NSURLSessionDataTask與NSURLSessionDownloadTask的區別是什麼
和在哪種情況下使用NSURLSessionTask
和哪裏NSURLSessionDownloadTask
?
在最新的蘋果中引入新的NSURLSession
代替NSURLConnection
,所以在這裏有不同的任務,那麼NSURLSessionDataTask
,NSURLSessionDownloadTask
有什麼區別?NSURLSessionDataTask與NSURLSessionDownloadTask的區別是什麼
和在哪種情況下使用NSURLSessionTask
和哪裏NSURLSessionDownloadTask
?
NSURLSessionDataTask:使用NSData的 數據任務交換數據。後臺會話中不支持NSURLSessionDataTask。
數據任務使用NSData對象發送和接收數據。數據任務適用於從應用程序到服務器的簡短交互式請求。數據任務可以在接收每一條數據後一次將數據返回給您的應用程序,或者通過完成處理程序一次全部返回數據。因爲數據任務不會將數據存儲到文件中,所以在後臺會話中不支持它們。
NSURLSessionDownloadTask: NSURLSessionDownloadTask直接將響應數據寫入臨時文件。它在應用程序未運行時支持後臺下載。
下載任務以文件形式檢索數據,並在應用程序未運行時支持後臺下載。
我想下面的圖片給你更好的瞭解:
該文檔回答這個問題,而是:
NSURLSessionDownloadTask
下載文件到磁盤,然後保存生成的文件某處以後使用。NSURLSessionDataTask
將文件下載到內存中,由您來決定如何處理響應。添加到上面的回答
NSURLSessionDownloadTask有可能取消下載任務,並在以後繼續點。
NSURLSessionDataTask我們不能恢復它以備後用。
我們可以從頭文件得到它
/* *一個NSURLSessionDataTask不超過一個NSURLSessionTask提供任何額外的* 的功能,它的存在僅僅是* 從下載提供詞彙分化上傳任務。*/
@interface NSURLSessionDataTask : NSURLSessionTask
@end
/* *一個NSURLSessionUploadTask目前不提供對一個NSURLSessionDataTask任何 額外*的功能。所有 委託消息*可能發送引用 NSURLSessionDataTask同樣將*應用於NSURLSessionUploadTasks。 */
@interface NSURLSessionUploadTask : NSURLSessionDataTask
@end
/* * NSURLSessionDownloadTask是代表一個下載到 *本地存儲的任務。 */
@interface NSURLSessionDownloadTask : NSURLSessionTask
我終於有了最好使用'NSURLSessionDownloadTask'因爲我們可以有它的附加功能.. – NSPratik
*由於數據的任務不將數據存儲到一個文件*這是什麼意思?他們不把它存儲到一個文件?!那麼在哪裏存儲?文件的形式是什麼意思?我覺得這是你答案的核心,有其他一些我不明白的先決條件。也許如果你分享真實世界的例子,那麼理解會變得更容易...... – Honey