IOS 防止內(nèi)存泄漏

  • NSTimer: self 持有 timer,timer 在初始化時(shí)持有 self,造成循環(huán)引用。 解決的方法就是,在dealloc方法以外,使用 invalidate 方法銷掉 timer。
- (void)removeFromSuperview //timer 在UIView中
{
    [timer invalidate];
    timer = nil;

    [super removeFromSuperview];
}

- (void)viewDidDisappear:(BOOL)animated // timer in UIViewController
{
    [self.timer invalidate];
    self.timer = nil;
    
    [super viewDidDisappear:animated];
}
  • block : block中使用self時(shí),會(huì)導(dǎo)致self,block的互相持有,無(wú)法釋放。解決方法是:在block中使用self的弱引用。
__weak typeof(self) weakSelf = self;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容