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但仍然無法解決問題。