__block 修饰局部变量

63 阅读1分钟
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    typedef void (^testblock)(void);
    NSInteger a =10;
    __block NSInteger b=10;
    testblock block1 = ^{NSLog(@"a1=%ld",(long)a);};
    testblock block2 = ^{NSLog(@"a2=%ld",(long)b);};
    a = 100;
    b =100;
    testblock block3 = ^{NSLog(@"a3=%ld",(long)a);};
    testblock block4 = ^{NSLog(@"a4=%ld",(long)b);};
    
    block1();
    block2();
    block3();
    block4();
}

@end
2018-01-18 17:17:31.668983+0800 SZDemo[4493:220570] a1=10
2018-01-18 17:17:31.669091+0800 SZDemo[4493:220570] a2=100
2018-01-18 17:17:31.669160+0800 SZDemo[4493:220570] a3=100
2018-01-18 17:17:31.669220+0800 SZDemo[4493:220570] a4=100