NSFileHandle随笔
2015-11-04 22:50
267 查看
NSURLConnectionDataDelegate
可以实现文件下载/自己可以拼接出一个完整的文件!
进度条也可以实现,需要自己实现业务逻辑!
在下载文件的时候解决内存暴涨的问题有说明方法呢?
方法1:边下载,边存储(往沙盒中存)!
方法2: 利用 NSFileHandle
实现上述功能,可以解决内存暴涨问题!
在解决了内存暴涨又出现新问题:
有可能下载下来的文件变大!(一直增加)
自己写业务逻辑!
下载之前,首先检查本地是否存在文件!
1.
如果本地已经存在这个文件,文件大小跟服务器文件大小一致!告诉用户,文件已经存在!
2.
如果本地保存的文件>服务器上的文件,删除之后,重新下载!
3.
如果本地保存的文件<服务器上的文件,获取本地文件的大小,设置 Range ,继续下载!
NSOutputStream
数据流!
实现的功能和 NSFileHandle 是一样的!
理解:
数据流的概念:数据是通过数据包一点一点传输过来的!
流媒体(视频播放)开发使用的数据流比较多!
利用数据流来实现数据拼接,也会造成下载的数据变大!
新问题: Block
回调默认是在主线程执行的!当有 UI
操作的时候,下载会暂停!
即使将代理的回调队列设为
非主队列,上述问题依然存在!
可以实现文件下载/自己可以拼接出一个完整的文件!
进度条也可以实现,需要自己实现业务逻辑!
在下载文件的时候解决内存暴涨的问题有说明方法呢?
方法1:边下载,边存储(往沙盒中存)!
方法2: 利用 NSFileHandle
实现上述功能,可以解决内存暴涨问题!
在解决了内存暴涨又出现新问题:
有可能下载下来的文件变大!(一直增加)
自己写业务逻辑!
下载之前,首先检查本地是否存在文件!
1.
如果本地已经存在这个文件,文件大小跟服务器文件大小一致!告诉用户,文件已经存在!
2.
如果本地保存的文件>服务器上的文件,删除之后,重新下载!
3.
如果本地保存的文件<服务器上的文件,获取本地文件的大小,设置 Range ,继续下载!
NSOutputStream
数据流!
实现的功能和 NSFileHandle 是一样的!
理解:
数据流的概念:数据是通过数据包一点一点传输过来的!
流媒体(视频播放)开发使用的数据流比较多!
利用数据流来实现数据拼接,也会造成下载的数据变大!
新问题: Block
回调默认是在主线程执行的!当有 UI
操作的时候,下载会暂停!
即使将代理的回调队列设为
非主队列,上述问题依然存在!
相关文章推荐
- SpringIoC依赖注入的过程(三)
- iOS开发 ----- 新的转场动画
- Chapter 13 Exercises & Problems
- Swift 编程思想 Part 4:map all the things!
- dos进入mysql
- 单链表
- 【JDK源码】JDK/ArrayList源码逐行详解
- 算法-朴素字符串匹配
- MenuItem的setAsAction四种属性解析
- 1104 文法产生这段C程序的推导过程
- Chapter 12 Exercises & Problems
- 设置Ubuntu环境变量 PATH 的方法 及配置备份
- C++primer学习:模板编程(6):模板实参推断和forward的运用与源代码
- 快学Scala 读书笔记之 Chapter 2、3、4(控制结构函数,数组,映射,元组)
- [TwistedFate] NSDate NSDateFormatter
- Android总结——Android四大控件
- [leetcode 9] Palindrome Number
- Hadoop之HDFS的API实现
- mecache安装与php_memcache.dll扩展
- Linux 的man page/info page