__weak修飾後再block中運用__strong修飾問題
ARC環境中運用weak 的修飾符來修飾一個變量,避免其在block中被循環援用,而有些特殊狀況下,我們在block中又運用__strong 來修飾這個在block外剛剛用__weak修飾的變量,這是由於在block中調用self會惹起循環援用,而在block中需求對weakSelf停止__strong,保證代碼在執行到block中,self不會被釋放,當block執行完後,會自動釋放該strongSelf;
如在A.networkReachabilityManager中運用的代碼如下:
__weak __typeof(self)weakSelf = self;
A.networkReachabilityStatusBlock callback = ^(A.networkReachabilityStatus status) {
__strong __typeof(weakSelf)strongSelf = weakSelf;
strongSelf.networkReachabilityStatus = status;
if (strongSelf.networkReachabilityStatusBlock) {
strongSelf.networkReachabilityStatusBlock(status);
}
};
【__weak修飾後再block中運用__strong修飾問題】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!