关于TCBlobDownload中续传的问题

关于TCBlobDownload中使用续传,发现取消之后所有的进度又重新开始计算,不知道你是否有和我遇到相同的问题,其实这是有续传的,只是我想原作者没有考虑到得一个小bug而已,导致所有的进度被重置了,好了,接下来说下怎么修改这个bug吧

1.下载地址:https://github.com/thibaultCha/TCBlobDownload点击打开链接

2.源码的例子中有这个方法的调用

[self.sharedDownloadManager cancelAllDownloadsAndRemoveFiles:YES];

请将YES换为NO,YES是在取消的同时删除未下载完的文件,如果你想测试续传功能,未下载完的文件肯定不能删除

3.请保证文件大于1M,因为这个考虑到对本地磁盘的连续存取会影响硬件的质量,所以作者设置

const double kBufferSize = 1024*1024; // 1 MB 当接收的数据大于1M的时候才进行写文件操作,所以建议还是找个大于4M的文件进行测试吧

4.接下来是修改第三方代码了,

找到TCBlobDownload.m这个文件,找到

- (void)start 这个方法,接着找到

uint64_t fileSize = [[fm attributesOfItemAtPath:self.pathToFile error:nil] fileSize];
NSString *range = [NSString stringWithFormat:@"bytes=%lld-", fileSize];
 [fileRequest setValue:range forHTTPHeaderField:@"Range"];

这几行代码,

请加上_receivedDataLength += fileSize;

加上之后大概是这样的

    else {
        uint64_t fileSize = [[fm attributesOfItemAtPath:self.pathToFile error:nil] fileSize];
        _receivedDataLength += fileSize;
        NSString *range = [NSString stringWithFormat:@"bytes=%lld-", fileSize];
        [fileRequest setValue:range forHTTPHeaderField:@"Range"];
    }

5.接着找到这个方法

- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse *)response

同理

    _expectedDataLength = [response expectedContentLength];
    _expectedDataLength += _receivedDataLength;


好了,修改完毕,试试吧,看看bug是否解决


关于TCBlobDownload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值