MRC BlOCK ARC

 
 /*-------------------MRC环境中-------------------------*/
    //使用局部变量:a到block块中,为了在block中可以使用这个变量,将a拷贝放到常量区域
//    int a = 10;
   
    //若是访问局部对象,为了在block中可以使用这个对象,引用计数值加一
    //注意:若是使用__block修饰,计数值则不加一
//-----------block对全局变量的影响-----------
   
    //block在访问全局变量、方法的时候,会将这个变量对应的对象计数值加一
    //block -> self -> self.view -> button -> block
   
    //解决方式:使用__block修饰self
   
    //总结:在MRC环境中__block的做用:(1)能够在block中修改变量值  (2)block内部访问属性的时候,可使用__block修饰,避免计数值加一(解决循环引用问题)
 
//---------------在ARC环境中---------------
//__block:可让局部变量在block中修改数据
//------------解决循环引用------------
//在ARC环境中的解决方法:
__weak 能够解决在block代码块中调用方法产生的循环引用,可是不能解决在block代码块中使用全剧变量产生的循环引用
 
__strong 能够解决在block代码块中调用方法产生的循环引用,也能够解决在block代码块中使用全剧变量产生的循环引用  www.iphonetrain.com
相关文章
相关标签/搜索