@property(nonatomic, weak) void(^block)(); - (void)viewDidLoad { [super viewDidLoad]; void(^ __weak blockA)() = ^{ NSLog(@"just a block"); }; _block = blockA; } - (IBAction)action:(id)sender { _block(); }
@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代码在栈区
__block NSString *tempString = @"string 123"; void(^ __weak blockA)() = ^{ NSLog(@"just a block"); self.age = 333; tempString = @"string 321"; }; _block = blockA; _block();