你好,歡迎來到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修飾

代碼實例:

[objc] view plaincopy

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