一,代碼。 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // 第一種是可以修改 static 全局變數;第二種是 ...
一,代碼。
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 第一種是可以修改 static 全局變數;第二種是可以修改用新關鍵字 __block 修飾的變數。
__block int blockLocal = 100;
static int staticLocal = 100;
void (^aBlock)(void) = ^(void){
blockLocal++;
staticLocal++;
};
NSLog(@"----blockLocal--%d",blockLocal);
NSLog(@"---staticLocal--%d",staticLocal);
aBlock();
NSLog(@"----blockLocal--%d",blockLocal);
NSLog(@"---staticLocal--%d",staticLocal);
}
二,輸出。
2015-10-23 13:15:30.598 在Block中修改外部變數的值[7561:195731] ----blockLocal--100
2015-10-23 13:15:30.598 在Block中修改外部變數的值[7561:195731] ---staticLocal--100
2015-10-23 13:15:30.598 在Block中修改外部變數的值[7561:195731] ----blockLocal--101
2015-10-23 13:15:30.598 在Block中修改外部變數的值[7561:195731] ---staticLocal--101