特点:如果block里面用到了外界变量,block里面变量的值永远是初始值,不管外面怎么改变,block里面的值都不会发生改变。其实block里面变量的值,是block复制了一份,已经不是外面变量的值了。
__block int a = 10; 如果用双下划线声明一个变量,那么在block里面使用的值可以进行修改了。
和c语言中函数指针类似
int (^addBlock) (int , int) = ^(int a , int b) {
return a + b;
};
调用的时候
NSLog(@“%d”,addBlock(1,2));
__block int a = 10; 如果用双下划线声明一个变量,那么在block里面使用的值可以进行修改了。
和c语言中函数指针类似
int (^addBlock) (int , int) = ^(int a , int b) {
return a + b;
};
调用的时候
NSLog(@“%d”,addBlock(1,2));