block内部实现原理(三)

block内部实现原理(一)

block内部实现原理(二)

 

【block在arc下实现】

 

首先说结果,在局部传参过程中(直接传参,__block关键字,static关键字)block在ARC下和MRC并没有区别,

但是由于ARC的原因直接用__block关键字会有可能造成循环引用。所有针对对象用关键字__weak,__unsafe_unretained

如果用__weak,__unsafe_unretained ,会copy一份,并不会对外面参数的值进行修改,甚至修饰普通变量会有警告,

 

 

所以,基本不需要考虑arc与mrc的关系,注意循环引用即可

 

【带参数的block 】

 

带参的block方法与不带参的block方法的区别和正常带参方法与不带参方法基本相同

参数为block 传递的则是一个指针

 

 

 

To be continue

 

 

posted @ 2015-11-21 18:45  折半  阅读(267)  评论(1编辑  收藏  举报