有两种办法, 第一种是可以修改 static 全局变量; 第二种是可以修改用新关键字 __block 修饰的变量。请看: NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; __block int blockLocal = 100; static int staticLocal = 100; void (^aBlock)(void) = ^(void){ NSLog(@" >> Sum: %d\n", global + staticLocal); global++; blockLocal++; staticLocal++; }; aBlock(); NSLog(@"After modified, global: %d, block local: %d, static local: %d\n", global, blockLocal, staticLocal); [pool release]; 执行之后,值均为:101
如何在 block 中修改外部变量
最新推荐文章于 2024-09-01 10:00:00 发布