续上一篇block传值(二)
int __globalNum;
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
int number = 10;
_number = 10;
static int num = 10;
__globalNum = 10;
//__block 这个变量表示以后要在block中引用
__block int blockNum = 10;
//block中可以引用外部变量。
//对于局部变量,引用的是变量的当前值,而不是变量本身。
//对于实例变量,引用的是变量本身。
//对于静态变量,block引用变量本身。
//对于全局变量,block引用变量本身。
//对于__block标记的变量,block引用变量本身
void (^block)(void) = ^
{
NSLog(@"%d",number);
NSLog(@"---_number %d",_number);
NSLog(@"---static %d",num);
NSLog(@"__globalNum %d",__globalNum);
NSLog(@"blockNum %d",blockNum);
};
number = 20;
_number = 20;
num = 20;
__globalNum = 20;
blockNum = 20;
block();
}
输出结果如下: