NSURLConnectionDataDelegate
可以实现文件下载/自己可以拼接出一个完整的文件!
进度条也可以实现,需要自己实现业务逻辑!
在下载文件的时候解决内存暴涨的问题有说明方法呢?
方法1:边下载,边存储(往沙盒中存)!
方法2: 利用 NSFileHandle 实现上述功能,可以解决内存暴涨问题!
在解决了内存暴涨又出现新问题: 有可能下载下来的文件变大!(一直增加)
自己写业务逻辑!
下载之前,首先检查本地是否存在文件!
1. 如果本地已经存在这个文件,文件大小跟服务器文件大小一致!告诉用户,文件已经存在!
2. 如果本地保存的文件>服务器上的文件,删除之后,重新下载!
3. 如果本地保存的文件<服务器上的文件,获取本地文件的大小,设置 Range ,继续下载!
NSOutputStream 数据流! 实现的功能和 NSFileHandle 是一样的!
理解: 数据流的概念:数据是通过数据包一点一点传输过来的!
流媒体(视频播放)开发使用的数据流比较多!
利用数据流来实现数据拼接,也会造成下载的数据变大!
新问题: Block 回调默认是在主线程执行的!当有 UI 操作的时候,下载会暂停!
即使将代理的回调队列设为 非主队列,上述问题依然存在!