block 封装了一段代码,可以在任何时候执行。
1>它的常见定义方式:例如:typedef int(^mySum)(int,int);若在后面跟再次用到可以直接用 mySum sum=^(int a,int b)来声明一个block; 另一种是直接定义 int(^sum)(int ,int).
2>block可以访问block外部的变量,但是不可以修改如果要修改则要用——block;
作用:Block除了能够定义参数列表、返回类型外,还能够获取被定义时的词法范围内的状态(比如局部变量),并且在一定条件下(比如使用__block变量)能够修改这些状态。此外,这些可修改的状态在相同词法范围内的多个block之间是共享的,即便出了该词法范围(比如栈展开,出了作用域),仍可以继续共享或者修改这些状态。