![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
IOS基础
文章平均质量分 70
stree7cleaner
这个作者很懒,什么都没留下…
展开
-
KVO、BLOCK、代理、通知
一、KVO: 监听对象属性的变化1.同步的,所有的监听方法执行会在属性变化的线程上执行,目的是为了保证顺序执行(属性改变后只有先执行完响应的代码才能执行改变属性的下一条语句),因为同步,所以不能线程间通信2.如果多个线程同时修改一个属性,有可能会出现资源抢夺的问题(加上互斥锁《线程同步》)// 互斥锁的参数必须是一个对象,任意一个对象都可以,但是不能是线程执行方法中定义的对象,一般用self即可//转载 2016-05-18 00:59:19 · 547 阅读 · 0 评论 -
iOS开发之断点续传原理与实现
来自: http://www.itnose.net/detail/6452855.html断点续传的原理: 每次在向服务器请求下载数据的同时,要告诉服务器从整个下载文件的数据流的某个还未下载的位置开始下载,然后服务器就返回从那个位置开始的数据流。图片示意图: 断点续传关键代码://2.创建请求对象NSMutableURLRequest *request = [NSMutableURLReque转载 2016-05-18 01:26:29 · 4977 阅读 · 0 评论 -
Block的声明和线程安全
Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非ARC下返回Block)。另一个需要注意的问题是关于线程安全,在声明Block属性时需要确认“在调用Block时另一个线程有没有可能去修改Block?”这个问题,如果确定不会有这种情况发生的话,那么Block属性声明可以用nonatomic转载 2016-05-18 15:24:24 · 1018 阅读 · 0 评论