1).在block代码块的内部,可以取定义在外部的变量的值,定义在外部的局部变量和全局变量
2).在block代码块中可以修改全局变量的值,但是不能修改定义在外部的局部变量的值。(如果希望定义的的局部变量,可以允许block代码的内部去修改,那么就在局部变量加上一个__block)
#import <Foundation/Foundation.h>
typedefvoid (^newType)();
int num1 =100;
int main(int argc,const char * argv[]) {
__block int num2 = 200;
newType block1 = ^{
int num3 =300;
num3++;
NSLog(@"num = ===%d",num2);
};
block1();
// 可以修饰num3和num1的值,但是不能修饰num2
// 如果希望定义的的局部变量,可以允许block代码的内部去修改,那么就在局部变量加上一个__block
return0;
}