記一次collectionView的內(nèi)存釋放

在collectionView的方法中:

 __weak typeof(self)weakSelf = self;
    cell.deletHeaderBlock = ^{
        __strong typeof(weakSelf)strongSelf = weakSelf;
        UIView*view = [collectionView cellForItemAtIndexPath:selectIndex]
    };

在cell的block里面直接使用collectionView會(huì)造成循環(huán)引用,Xcode的內(nèi)存檢測(cè)工具也不能檢測(cè)到,控制器的dealloc方法也能夠正常執(zhí)行,但是內(nèi)存不會(huì)釋放掉,使用strongSelf.collectionView代替直接使用collectionView便可解決問(wèn)題.

另外由于block的變量捕獲機(jī)制,當(dāng)在block中使用局部對(duì)象時(shí),如果這個(gè)對(duì)象占用內(nèi)存很大,會(huì)導(dǎo)致內(nèi)存占用過(guò)高,可以在block外面先創(chuàng)建一個(gè)變量記錄要使用的值,在block內(nèi)部使用這個(gè)變量,可以減少內(nèi)存占用。

    UIImageOrientation orientation = currentUseVirtaulHeaderModel.imgOrientation;
    dispatch_source_set_event_handler(self.timer, ^{
        [self playVirtualHeaderWithPixelBufferArray:pixelBufferArray imgOrentation:orientation];
    });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 未完,待更新 一、必備題 1、AFN 原理 鏈接:AFNetworking源碼——基本架構(gòu) - 簡(jiǎn)書(shū) 2、SDWe...
    小熊_07cb閱讀 3,010評(píng)論 3 27
  • 歡迎訪問(wèn)我的博客原文 內(nèi)存泄漏指的是程序中已動(dòng)態(tài)分配的堆內(nèi)存(程序員自己管理的空間)由于某些原因未能釋放或無(wú)法釋放...
    FiTeen閱讀 2,783評(píng)論 1 5
  • 一、Block循環(huán)引用 關(guān)于這一點(diǎn),我相信很多人都已經(jīng)了解,就不再詳細(xì)解釋,舉個(gè)例子: 關(guān)于其中的循環(huán)問(wèn)題,我們看...
    Cheriez閱讀 442評(píng)論 0 0
  • 內(nèi)存泄漏 內(nèi)存泄漏指的是程序中已動(dòng)態(tài)分配的堆內(nèi)存由于某些原因未能釋放或無(wú)法釋放,造成系統(tǒng)內(nèi)存的浪費(fèi),導(dǎo)致程序運(yùn)行速...
    ___F閱讀 2,721評(píng)論 1 4
  • 目錄 ARC下如何避免內(nèi)存泄露?如何檢測(cè)? 你是如何做內(nèi)存優(yōu)化的? __block你知道多少?在什么時(shí)候使用? 關(guān)...
    HelloiWorld閱讀 1,046評(píng)論 2 10

友情鏈接更多精彩內(nèi)容