zoukankan      html  css  js  c++  java
  • iOS 断点续传(基于NSOperation)

    在做电子书的时候因为考虑到在下载过程中可能因为一些原因取消下载,所以下载操作需要放在后台去下载。

    参考SDWebImage源码能够看到里面实现是基于NSOperation来实现

    要点一:因为可能需要取消下载所以,继承NSOperation可以实现取消功能,方式重写main方法(我们必须为我们自定义的operation 提供 autorelease pool,因为 operation 完成后需要销毁。)

    要点二:通过请求头指定“Range”能够实现从特定位置开始下载。

    要点三:通过http的head方法可以获得文件的大小

    要点四:用字典存储操作(用URL为Key),避免重复下载

    要点五:使用NSUrlconnection下载,在代理回调中用流的方式存储下载的文件,并且设置代理回调到非主线程中setDeleateQueue为新建的NSOperationQueue,会自动开启多线程下载

    要点六:NSFileManager的使用判断本地文件大小,然后处理相应逻辑

  • 相关阅读:
    keepalive高可用
    springboot中bean的重定义
    jni有关知识点总结
    java并发问题总结
    openoffice将word转pdf中文乱码或消失的坑
    Redis实现分布式锁(Set和Lua)
    Redis java使用
    Redis 分区
    Redis 管道技术
    Redis 连接
  • 原文地址:https://www.cnblogs.com/zhaoyunboy/p/6083784.html
Copyright © 2011-2022 走看看