0
我有一个BaseViewController包含类型块的属性:声明一个模块在一个超类可以访问由子类
typedef void (^result)(BOOL didSend);
@class ShakeView;
@interface BaseViewController : UIViewController
@property result mPlayerControlResultHandler;
@end
我想,这个块可以通过其他子类进行访问。因此,在BaseViewController的viewDidLoad
我这样做是为了初始化块:
- (void)viewDidLoad
{
[super viewDidLoad];
_mPlayerControlResultHandler = ^(BOOL didSend)
{
if(!didSend)
{
__block BaseViewController *blocksafeSelf = self;
[blocksafeSelf onOperatingSpeakerShortConnectionFailure];
}
};
}
这将抛出一个警告
在此块强烈捕获的自我很可能会导致一个保留周期
所以我搜索了一个解决方案,并尝试一切建议here但仍然无法解决问题。