- 
<span style="font-size:24px;">为什么要使用block变量呢?
  
 - 
由于当我们的程序比較繁杂的时候,我们在一个函数中要调用一个函数,还须要在外边来定义,实现,非常不方便,可是有了block变量我们就能够在一个函数的内部来定义一个block变量,相当于又在函数的内部来定义了一个函数.  
 - 
int (^max)(int x,int y) = ^(int x,int y)  
 - 
        {  
 - 
            return x > y ?
 x :y;  
 - 
        };  
 - 
        NSLog(@"%d",max(5,10));  
 - 
        int (^min)(int x,int y) =^(int x,int y)  
 - 
        {  
 - 
            return x > y ? y : x;  
 - 
             
 - 
        };  
 - 
        NSLog(@"%d",min(5,10));</span>  
 
 
- 
<pre name="code" class="cpp"><span style="font-size:24px;">当中block变量的类型为:int(^)(int x ,int y);  
 - 
max 为变量名,一般看函数是什么类型,仅仅须要把函数名去掉然后剩下的就是函数的类型.  
 - 
^(int x ,int y)  
 - 
{   
 - 
     return x + y;  
 - 
}  
 - 
上面的对block变量进行初始化.</span>  
 
 
- 
<span style="font-size:24px;">当在block内部使用block外部定义的局部变量时,假设变量没有被__block修饰,则在block内部是仅仅读的,不能对它改动,假设想改动,变量前必需要有__block修饰  
 - 
__block的作用是告诉编译器,在编译时在block内部不要把外部变量当做常量来使用,还是当做变量来使用.  
 - 
假设block访问全局变量,不需要__block修改,
 
 
   
 Block使用变量,让你的程序看起来清晰!
原文:http://www.cnblogs.com/hrhguanli/p/5029957.html