#import "ViewController.h"
@implementation ViewController
int tnt=1;
-(void)myMethod{
void(^blk)(void) = ^(void){
tnt = 3+1;
NSLog(@"tnt=>%d", tnt);
};
blk();
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self myMethod];
}
变量 tnt 在外面,但在里面,它工作得很好。如果我在 myMethod 中声明 tnt 变量,它开始给出 __block required 错误。
在这两种情况下, tnt 变量都在块之外。Apple 文档还说外部变量需要 __block 存储类型。为什么在 myMethod 之外声明 tnt 时它会起作用。