iOS 开源库源码分析之SGDownload

SGDownload是一个专门的大文件下载的库.非常适合视频的下载.

先看一下大致结构

SGDownloadManager

SGDownloadManager 管理着SGDownload,表示可以同时开启多个下载任务器。

SGDownload

SGDownload管理着SGDownloadTask

taskQueue是一个队列,管理着task。

SGDownload在run的时候

首先会构造一个sessionDelegateQueue用来管理download 的session delegate。

然后初始化一个共用的NSURLSession,

会通过downloadOperationQueue添加一个downloadOperation,在handler里面又一个while循环,里面通过downloadTaskSync方法查询tasks里面状态为None和Waiting的task取出来,然后置为running状态,然后 通过sessionTask和downloadTask一起构造一个SGDownloadTuple,通过taskTupleQueue管理。

SGDownloadTask

这个一个下载任务的类,主要是具体的模型数据

SGDownloadTaskQueue

SGDownloadTaskQueue是task的队列,通过tasks数组来管理task.提供了添加,启动,挂载,取消,删除任务的接口.

results matching ""

    No results matching ""