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
相關文章
相關標籤/搜索