AFNetworking框架

image.png

downloadTask

1,urlSession的didReceiveChallenge
2,didWriteData 保存到tmp下
3,didFinishDownloadingToUrl,從傳入的destination block得到download目錄,
將tmp移到download下
4,didCompleteWithError, 返回download路徑

dataTaskWithRequest

1,urlSession的didReceiveChallenge
2,didReceiveData,保存到mutableData
3,didCompleteWithError,返回mutableData序列化對象

downloadTaskWithResumeData

1,urlSession的didReceiveChallenge
2,didiResumeAtOffset
3,didWriteData 保存到tmp下
4,didFinishDownloadingToUrl,從傳入的destination block得到download目錄,
將tmp移到download下
5,didCompleteWithError, 返回download路徑;
如果發生錯誤,則返回空的download路徑 因為沒有到第4步didFinishDownloadingToUrl這一步

取消當前下載任務

NSURLSessionDownloadTask:

cancelByProducingResumeData (這種方式, 可以用downloadTaskWithResumeData續傳,流程如上面didiResumeAtOffset)
cancel

1,didCompleteWithError

取消session下面的所有task的下載任務

這種情況下session就不再可用了, AFURLSessionMananger需要重新創建。
NSURLSession :
invalidateAndCancel
finishTasksAndInvalidate

1,didCompleteWithError

暫停當前下載任務

NSURLSessionDownloadTask:
suspend
(可以用resume 繼續下載
1,didWriteData 從這繼續

resumeData
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。