• 图解:习近平出席博鳌亚洲论坛2018年年会前瞻 2019-03-19
  • 外贸创新举措 让开放惠及世界 2019-03-15
  • 记者带你逛CES:体验未来科技 2019-03-14
  • 我的中国医改建议,彻底解决看病难看病贵 2019-03-14
  • 海空联合演练相关新闻 2019-01-05
  • 登录 立即注册
    金钱:

    广州快乐十分开奖记录

    快乐十分两期和除以二:下载管理类,支持多文件断点下载和后台下载

    [复制链接]
    来自: 12207480 分类: iOS精品源码 上传时间: 2016-6-29 09:40:25
    Tag:TYDownloadManager , Download , 下载 , 网络 , Download

    项目介绍:

    TYDownloadManager
    (github:12207480/TYDownloadManager)

    Download file manager wrapped NSURLSessionDataTask and NSURLSessionDownloadTask,provide progress update and status change.
    下载管理类(TYDownLoadDataManager和TYDownloadSessionManager) 支持多文件断点下载和后台下载 封装了NSURLSessionDataTask和NSURLSessionDownloadTask,提供进度更新和状态改变bloc 和 delegate。

    Requirements
    • Xcode 6 or higher
    • iOS 7.0 or higher
    • ARC



    Features
    • TYDownLoadDataManager封装了NSURLSessionDataTask
    • TYDownloadSessionManager封装了NSURLSessionDownloadTask
    • 支持进度更新和状态改变block和delegate
    • 支持多文件下载和断点续传下载,TYDownloadSessionManager支持后台下载
    • 支持设置最大同时下载数maxDownloadCount和批量下载isBatchDownload
    • 支持等待下载队列 先进先出或先进后出 resumeDownloadFIFO


    UsageAPI
    Quickstart
    [Objective-C] 查看源文件 复制代码
     广州快乐十分开奖记录 www.2hyn.net // 下载代理
    @property (nonatomic,weak) id<TYDownloadDelegate> delegate;
    
    // 下载中的模型 只读
    @property (nonatomic, strong,readonly) NSMutableArray *waitingDownloadModels;
    
    // 等待中的模型 只读
    @property (nonatomic, strong,readonly) NSMutableArray *downloadingModels;
    
    // 最大下载数
    @property (nonatomic, assign) NSInteger maxDownloadCount;
    
    // 等待下载队列 先进先出 默认YES, 当NO时,先进后出
    @property (nonatomic, assign) BOOL resumeDownloadFIFO;
    
    // 全部并发 默认NO, 当YES时,忽略maxDownloadCount
    @property (nonatomic, assign) BOOL isBatchDownload;
    
    // 单例
    + (TYDownLoadDataManager *)manager;
    
    // 单例
    + (TYDownloadSessionManager *)manager;
    
    // 开始下载
    - (TYDownloadModel *)startDownloadURLString:(NSString *)URLString toDestinationPath:(NSString *)destinationPath progress:(TYDownloadProgressBlock)progress state:(TYDownloadStateBlock)state;
    
    // 开始下载
    - (void)startWithDownloadModel:(TYDownloadModel *)downloadModel progress:(TYDownloadProgressBlock)progress state:(TYDownloadStateBlock)state;
    
    // 开始下载
    - (void)startWithDownloadModel:(TYDownloadModel *)downloadModel;
    
    // 恢复下载(除非确定对这个model进行了suspend,否则使用start)
    - (void)resumeWithDownloadModel:(TYDownloadModel *)downloadModel;
    
    // 暂停下载
    - (void)suspendWithDownloadModel:(TYDownloadModel *)downloadModel;
    
    // 取消下载
    - (void)cancleWithDownloadModel:(TYDownloadModel *)downloadModel;
    
    // 删除下载
    - (void)deleteFileWithDownloadModel:(TYDownloadModel *)downloadModel;
    
    // 删除下载
    - (void)deleteAllFileWithDownloadDirectory:(NSString *)downloadDirectory;
    
    // 获取正在下载模型
    - (TYDownloadModel *)downLoadingModelForURLString:(NSString *)URLString;



    [Objective-C] 查看源文件 复制代码
    /**
     *  下载进度
     */
    @interface TYDownloadProgress : NSObject
    
    // 续传大小
    @property (nonatomic, assign, readonly) int64_t resumeBytesWritten;
    // 这次写入的数量
    @property (nonatomic, assign, readonly) int64_t bytesWritten;
    // 已下载的数量
    @property (nonatomic, assign, readonly) int64_t totalBytesWritten;
    // 文件的总大小
    @property (nonatomic, assign, readonly) int64_t totalBytesExpectedToWrite;
    // 下载进度
    @property (nonatomic, assign, readonly) float progress;
    // 下载速度
    @property (nonatomic, assign, readonly) float speed;
    // 下载剩余时间
    @property (nonatomic, assign, readonly) int remainingTime;
    
    @end


    Block
    [Objective-C] 查看源文件 复制代码
    // TYDownloadModel block
    // 进度更新block
    typedef void (^TYDownloadProgressBlock)(TYDownloadProgress *progress);
    // 状态更新block
    typedef void (^TYDownloadStateBlock)(TYDownloadState state,NSString *filePath, NSError *error);



    Delegate
    [Objective-C] 查看源文件 复制代码
    // TYDownLoadDataManager 和 TYDownloadSessionManager
    // TYDownLoadManager下载代理
    @protocol TYDownloadDelegate <NSObject>
    
    // 更新下载进度
    - (void)downloadModel:(TYDownloadModel *)downloadModel didUpdateProgress:(TYDownloadProgress *)progress;
    // 更新下载状态
    - (void)downloadModel:(TYDownloadModel *)downloadModel didChangeState:(TYDownloadState)state filePath:(NSString *)filePath error:(NSError *)error;
    
    @end
    


    DEMO
    [Objective-C] 查看源文件 复制代码
    // 下载可以使用 manager的代理 或者 downloadModel的block
    
    - (IBAction)download:(id)sender {
        TYDownloadSessionManager *manager = [TYDownloadSessionManager manager];
    
        if (_downloadModel.state == TYDownloadStateReadying) {
            [manager cancleWithDownloadModel:_downloadModel];
            return;
        }
    
        if ([manager isDownloadCompletedWithDownloadModel:_downloadModel]) {
            [manager deleteFileWithDownloadModel:_downloadModel];
        }
    
        if (_downloadModel.state == TYDownloadStateRunning) {
            [manager suspendWithDownloadModel:_downloadModel];
            return;
        }
        [self startDownlaod];
    }
    
    - (void)startDownlaod
    {
        TYDownloadSessionManager *manager = [TYDownloadSessionManager manager];
        __weak typeof(self) weakSelf = self;
        [manager startWithDownloadModel:_downloadModel progress:^(TYDownloadProgress *progress) {
            weakSelf.progressView.progress = progress.progress;
            weakSelf.progressLabel.text = [weakSelf detailTextForDownloadProgress:progress];
    
        } state:^(TYDownloadState state, NSString *filePath, NSError *error) {
            if (state == TYDownloadStateCompleted) {
                weakSelf.progressView.progress = 1.0;
                weakSelf.progressLabel.text = [NSString stringWithFormat:@"progress %.2f",weakSelf.progressView.progress];
            }
    
            [weakSelf.downloadBtn setTitle:[weakSelf stateTitleWithState:state] forState:UIControlStateNormal];
    
            //NSLog(@"state %ld error%@ filePath%@",state,error,filePath);
        }];
    }
    
    // [TYDownloadSessionManager manager].delegate = self;
    // [TYDownLoadDataManager manager].delegate = self;
    
    #pragma mark - TYDownloadDelegate
    
    - (void)downloadModel:(TYDownloadModel *)downloadModel didUpdateProgress:(TYDownloadProgress *)progress
    {
         NSLog(@"delegate progress %.3f",progress.progress);
    }
    
    - (void)downloadModel:(TYDownloadModel *)downloadModel didChangeState:(TYDownloadState)state filePath:(NSString *)filePath error:(NSError *)error
    {
        NSLog(@"delegate state %ld error%@ filePath%@",state,error,filePath);
    }



    DEMO 下载:



    相关源码推荐:

    我来说两句
    *滑动验证:
    所有评论(682)
    littleRed 2016-6-29 10:28:28
    感谢大神~
    回复
    hellokenken 2016-6-29 10:29:43
    code4app确实是个好地方,必须支持~
    回复
    BlueManlove 2016-6-29 10:30:57
    帮帮顶顶??!
    回复
    AlonMessi 2016-6-29 10:33:53
    好好 学习了 确实不错
    回复
    phoiu 2016-6-29 10:38:47
    小弟学习了~支持,支持
    回复
    kengsir 2016-6-29 10:41:48
    感谢分享,楼主V5~
    回复
    ILoveI 2016-6-29 10:50:22
    楼主用心了,内容非常精彩。
    回复
    dhl110925 2016-6-29 11:12:58
    楼主威武啊,Code4App有你更给力!
    回复
    code4app热心网友 2016-6-29 11:12:59
    我只是路过打酱油的。
    回复
    提取码:  下载次数:623 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
    11282 4 623
    联系我们
    首页/微信公众账号投稿

    帖子代码编辑/版权问题

    QQ:435399051,742864542

    如何获得代码达人称号?

    代码贡献英雄榜
    用户名 下载数
    通过邮件订阅最新 Code4App 信息
    上一条 /4 下一条
    联系我们
    关闭
    合作电话:
    13802416937
    Email:
    435399[email protected]
    商务市场合作/投稿
    问题反馈及帮助
    联系我们

    广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|广州快乐十分开奖记录 ( 粤ICP备15117877号-1 )

    快速回复 广州快乐十分开奖记录 返回列表
  • 图解:习近平出席博鳌亚洲论坛2018年年会前瞻 2019-03-19
  • 外贸创新举措 让开放惠及世界 2019-03-15
  • 记者带你逛CES:体验未来科技 2019-03-14
  • 我的中国医改建议,彻底解决看病难看病贵 2019-03-14
  • 海空联合演练相关新闻 2019-01-05