
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序列化對(duì)象
downloadTaskWithResumeData
1,urlSession的didReceiveChallenge
2,didiResumeAtOffset
3,didWriteData 保存到tmp下
4,didFinishDownloadingToUrl,從傳入的destination block得到download目錄,
將tmp移到download下
5,didCompleteWithError, 返回download路徑;
如果發(fā)生錯(cuò)誤,則返回空的download路徑 因?yàn)闆](méi)有到第4步didFinishDownloadingToUrl這一步
取消當(dāng)前下載任務(wù)
NSURLSessionDownloadTask:
cancelByProducingResumeData (這種方式, 可以用downloadTaskWithResumeData續(xù)傳,流程如上面didiResumeAtOffset)
cancel
1,didCompleteWithError
取消session下面的所有task的下載任務(wù)
這種情況下session就不再可用了, AFURLSessionMananger需要重新創(chuàng)建。
NSURLSession :
invalidateAndCancel
finishTasksAndInvalidate
1,didCompleteWithError
暫停當(dāng)前下載任務(wù)
NSURLSessionDownloadTask:
suspend
(可以用resume 繼續(xù)下載
1,didWriteData 從這繼續(xù)
)
