------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1、block的简介
block使用了与函数相同的机制:
可以像声明函数一样,来声明一个bock变量;可以利用定义一个函数的方法来定义一个block;也可以将block当做一个函数来调用。
简单写法举例:
int (^sumBlock)(int, int) = ^(int a, int b) {
return a + b;
int (^sumBlock)(int, int);
sumBlock = ^(int a, int b) {
return a + b;
调用方式:
sumBlock(10 , 9)
block默认不能修改外部的变量,可以访问外部变量。
如果要使外部变量能够通过block修改,需添加__block关键字。
具体写法如下:
__block int b = 100;
3、typedef定义block类型
举例,定义一个需要两个整形形参的block:
typedef int (^MyBlock)(int, int);
MyBlock sumBlock;
sumBlock = ^(int a, int b) {
return a + b;
};