X.3.1 宣告Block的参考(Reference)
Block 变数储存的是一个block的参考,我们使用类似宣告指标的方式来宣告,不同的是这时block变数指到的地方是一个函数,而指标使用的是「*」,block则是使用「^」来宣告,下面是一些合法的block宣告:
1:/* 回传void ,参数也是void 的block*/
2:void(^blockReturningVoidWithVoidArgument)(void);
3:/* 回传整数,两个参数分别是整数和字元型态的block*/
4:int(^blockReturningIntWithIntAndCharArguments)(int,char);
5:/* 回传void ,含有10 个block 的阵列,每个block 都有一个型态为整数的参数*/
6:void(^arrayOfTenBlocksReturningVoidWinIntArgument[ 10 ])(int);
7:X.3.2 建立一个Block
8:
9:我们使用「^」来开始一个block,并在最后使用「;」来表示结束,下面的范例示范了一个block变数,然后再定义一个block把它指定给block变数:
10:
11:int(^oneFrom)(int);/* 宣告block 变数*/
12:/* 定义block 的内容并指定给上面宣告的变数*/
13:oneFrom = ^(intanInt)
14:{
15:returnanInt = - 1 ;
16:};
X.3.3 全域的Block
我在可以在档案中宣告一个全域的block,请参考以下范例:
1:intGlobalInt = 0 ;
2:int(^getGlobalInt)(void) = ^ (void) {returnGlobalInt ;};