首页 > 试题广场 >

在ARC环境下这段代码为什么不会崩溃? @property(

[单选题]
在ARC环境下这段代码为什么不会崩溃?
@property(nonatomic, weak) void(^block)();

- (void)viewDidLoad {
[super viewDidLoad];

void(^ __weak blockA)() = ^{
NSLog(@"just a block");
};
_block = blockA;
}

- (IBAction)action:(id)sender {
_block();
}



  • block 使用了weak修饰
  • ARC下block没有捕获外部变量
  • 因为block是该类自身属性
  • Block代码在栈区

这题感觉怪怪的,貌似不崩很正常吧,跟这些选项有关系吗?

发表于 2020-04-12 21:04:22 回复(0)
    __block NSString *tempString = @"string 123";
    void(^ __weak blockA)() = ^{
        NSLog(@"just a block");
        self.age = 333;
        tempString = @"string 321";
    };
    _block = blockA;
    _block();
捕获了也没崩
发表于 2020-05-21 11:23:44 回复(3)