iOS Download Manager

iOS Download Manager

之前的項目中有類似於百度下載,找了幾個開源項目,看了下源碼,記錄一下,方便自己以後

下載最好要支持後臺傳輸,一般使用的是NSURLSession,NSURLSessionConfiguration使用的是支持background的模式

1、HWDownloadDemo

HWDownloadDemo實現了後臺下載,文章iOS 大文件下載、斷點續傳、後臺下載 —— HERO博客也對demo進行詳細的說明

A、下載模型HWDownloadModel,保存有下載狀態,下載的數據

@property (nonatomic, strong) NSData *resumeData;           // 下載的數據
@property (nonatomic, assign) HWDownloadState state;        // 下載狀態

Demo下載鏈接:https://github.com/HeroWqb/HWDownloadDemo

下載的狀態包括如下的幾種:

typedef NS_ENUM(NSInteger, HWDownloadState) {
    HWDownloadStateDefault = 0,  // 默認
    HWDownloadStateDownloading,  // 正在下載
    HWDownloadStateWaiting,      // 等待
    HWDownloadStatePaused,       // 暫停
    HWDownloadStateFinish,       // 完成
    HWDownloadStateError,        // 錯誤
};

B、使用FMDB來保存下載模型,對數據進行增刪改查

對更新數據庫的操作類型,也進行了分類,如下:

typedef NS_OPTIONS(NSUInteger, HWDBUpdateOption) {
    HWDBUpdateOptionState         = 1 << 0,  // 更新狀態
    HWDBUpdateOptionLastStateTime = 1 << 1,  // 更新狀態最後改變的時間
    HWDBUpdateOptionResumeData    = 1 << 2,  // 更新下載的數據
    HWDBUpdateOptionProgressData  = 1 << 3,  // 更新進度數據(包含tmpFileSize、totalFileSize、progress、intervalFileSize、lastSpeedTime)
    HWDBUpdateOptionAllParam      = 1 << 4   // 更新全部數據
};

相關文章鏈接https://blog.csdn.net/hero_wqb/article/details/80407478

2、YCDownloadSession

YCDownloadSession 

3、TWRDownloadManager  

經過對比model的使用,項目最終選擇了第一個第三方SDK HWDownloadManager實現了類型百度下載。

發佈了7 篇原創文章 · 獲贊 0 · 訪問量 1430
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章