你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS中的__block關鍵字簡單使用

IOS中的__block關鍵字簡單使用

編輯:IOS開發綜合

/**13.__block什麼時候用?**/

結論:在block裡面修改局部變量的值都要用__block修飾

/**14.請教一個問題:在block裡面, 對數組執行添加操作, 這個數組需要聲明成 __block嗎?**/

 

不需要聲明成__block,因為testArr數組的指針並沒有變(往數組裡面添加對象,指針是沒變的,只是指針指向的內存裡面的內容變了)

/**15.在block裡面, 對NSInteger進行修改, 這個NSInteger是否需要聲明成__blcok ?**/

 

NSInteger的值發生改變,則要求添加__block修飾

 

代碼實例:

 

NSMutableArray *testArr =[[NSMutableArray alloc] initWithObjects:@"1",@"2", nil];
    __block NSInteger a=10;
    /**結論:在block裡面修改局部變量的值都要用__block修飾**/
    void (^TestBlock)(void) = ^{
//        NSMutableArray *temArr=[[NSMutableArray alloc] init];
//        testArr=temArr;//testArr數組的指針發生改變時,testArr要添加__block修飾
        
        a=100;//a的值發生改變,則要求添加__block修飾
//        testArr不需要聲明成__block,因為testArr數組的指針並沒有變(往數組裡面添加對象,指針是沒變的,只是指針指向的內存裡面的內容變了)
        [testArr addObject:[NSString stringWithFormat:@"3"]];
        NSLog(@"_block testArr :%@ a:%d", testArr,a);
        
    };
    a=0;
    TestBlock();
    
    NSLog(@"testArr :%@ a:%d", testArr,a);

運行結果:

 

 

2015-05-13 20:16:23.862 WXMovie_study[22827:1683307] _block testArr :(

1,

2,

3

) a:100

2015-05-13 20:16:23.862 WXMovie_study[22827:1683307] testArr :(

1,

2,

3

) a:100


 

 


  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved