block引用外部变量(三)

来源:互联网 发布:二进制是谁发明的 知乎 编辑:程序博客网 时间:2024/04/25 10:19

续上一篇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();}

输出结果如下:

5 0
原创粉丝点击