X.3.1 宣告Block的參考(Reference)
Block 變數(shù)儲存的是一個block的參考,我們使用類似宣告指標的方式來宣告,不同的是這時block變數(shù)指到的地方是一個函數(shù),而指標使用的是「*」,block則是使用「^」來宣告,下面是一些合法的block宣告:
1:/* 回傳void ,參數(shù)也是void 的block*/
2:void(^blockReturningVoidWithVoidArgument)(void);
3:/* 回傳整數(shù),兩個參數(shù)分別是整數(shù)和字元型態(tài)的block*/
4:int(^blockReturningIntWithIntAndCharArguments)(int,char);
5:/* 回傳void ,含有10 個block 的陣列,每個block 都有一個型態(tài)為整數(shù)的參數(shù)*/
6:void(^arrayOfTenBlocksReturningVoidWinIntArgument[ 10 ])(int);
7:X.3.2 建立一個Block
8:
9:我們使用「^」來開始一個block,并在最后使用「;」來表示結束,下面的范例示范了一個block變數(shù),然后再定義一個block把它指定給block變數(shù):
10:
11:int(^oneFrom)(int);/* 宣告block 變數(shù)*/
12:/* 定義block 的內容并指定給上面宣告的變數(shù)*/
13:oneFrom = ^(intanInt)
14:{
15:returnanInt = - 1 ;
16:};
X.3.3 全域的Block
我在可以在檔案中宣告一個全域的block,請參考以下范例:
1:intGlobalInt = 0 ;
2:int(^getGlobalInt)(void) = ^ (void) {returnGlobalInt ;};