前言:使用NSURLSessionDownloadTask滿足不這個需要離線斷點續傳的下載需求,所以這裡就需要使用NSURLSessionDataTask的代理方法來處理下載大文件,並且實現離線斷點續傳。 關於NSURLSessionDownloadTask的知識,可以請讀者閱讀本人的前篇:《iOS
前言:使用NSURLSessionDownloadTask滿足不這個需要離線斷點續傳的下載需求,所以這裡就需要使用NSURLSessionDataTask的代理方法來處理下載大文件,並且實現離線斷點續傳。
關於NSURLSessionDownloadTask的知識,可以請讀者閱讀本人的前篇:《iOS開發之網路編程--2、NSURLSessionDownloadTask文件下載》。
另外呢,因為NSURLSessionDownloadTask和NSURLSessionDataTask分別都是NSURLSessionTask的上層繼承拓展。比如NSURLSessionDownloadTask在代理方法中內部實現了
將文件邊下載邊移存到沙盒中,而使用NSURLSessionDataTask就需要自己完成這個過程了,但是NSURLSessionDataTask可以實現離線斷點續傳。
實現離線的斷點續傳的基本思路:
1、比如應用程式下載15M的小視視頻,但是下載到5M的時候這個程式可能是因為用戶需要其退出或者是意外崩潰退出或者是斷網了,導致還有10M沒有下載成功。
2、為了能夠在重新啟動程式之後還能夠繼續下載剩下的10M,需要在程式繼續下載的時候判斷和讀取本地緩存中是否存在已經下載的數據和數據長度,然後在該數據長度之後繼續下載剩下的部分。
用於測試代碼的API介面:http://120.25.226.186:32812/resources/videos/minion_02.mp4
1、NSURLSessionDataTask實現文件下載(未實現離線斷點續傳下載)