<spanstyle="font-size:24px;">为什么要使用block变量呢?

因为当我们的程序比较繁杂的时候,我们在一个函数中要调用一个函数,还需要在外边来定义,实现,很不方便,但是有了block变量我们就可以在一个函数的内部来定义一个block变量,相当于又在函数的内部来定义了一个函数.

int(^max)(intx,inty)=^(intx,inty)//求两个数的最大值

{

returnx>y?x:y;

};

NSLog(@"%d",max(5,10));

int(^min)(intx,inty)=^(intx,inty)//求两个数的最小值

{

returnx>y?y:x;

};

NSLog(@"%d",min(5,10));</span>

[cpp]view plaincopy

<prename="code"class="cpp"><spanstyle="font-size:24px;">其中block变量的类型为:int(^)(intx,inty);

max为变量名,一般看函数是什么类型,只需要把函数名去掉然后剩下的就是函数的类型.

^(intx,inty)

{

returnx+y;

}

上面的对block变量进行初始化.</span>


[cpp]view plaincopy

<spanstyle="font-size:24px;">当在block内部使用block外部定义的局部变量时,如果变量没有被__block修饰,则在block内部是只读的,不能对它修改,如果想修改,变量前必须要有__block修饰

__block的作用是告诉编译器,在编译时在block内部不要把外部变量当做常量来使用,还是当做变量来使用.