兩次踩了同一個(gè)坑,特此記錄下
self.redView = ({
UIView *view = [DFCustomView new];
view.backgroundColor = [UIColor redColor];
[view setOnClickListener:^{
// 引用 self 導(dǎo)致無法 Controller 無法被釋放,這種情況 Xcode 沒有警告
[self instanceMethod];
}];
view;
});
DFRedView *redView = [DFRedView new];
[redView setOnClickListener:^{
// 要用 weakSelf
[self foo];
];
self.redView = redView;
局部變量的 block 中引用 self 是沒有警告的,盡量都用 weakSelf