在collectionView中加載大量圖片,上拉加載,內(nèi)存一直飆升...第一反應(yīng)是重用問(wèn)題,可是仔細(xì)想來(lái),collectionView不是tableview,重用應(yīng)該不是問(wèn)題.
最后檢查代碼也發(fā)現(xiàn)不是重用的鍋,沒(méi)辦法只能leak了...
然后就發(fā)現(xiàn)了這幅圖...

簡(jiǎn)直可怕...
百度一發(fā),發(fā)現(xiàn)是個(gè)挺常見(jiàn)的問(wèn)題,但是回答都比較老,有直接改SD源文件的,也有一些比較老的方法,看一眼時(shí)間就沒(méi)有嘗試- -...
不扯了,解決方法...
我找到了2種:
方法一:
簡(jiǎn)單粗暴,直接使用AFNetworking的網(wǎng)絡(luò)圖片加載...
試了試還不錯(cuò),沒(méi)有內(nèi)存飆升,也沒(méi)發(fā)現(xiàn)什么其他的bug效果不錯(cuò).
方法二:
碰到問(wèn)題不解決了總是渾身難受,那么直面問(wèn)題吧~
發(fā)現(xiàn)主要是
image = [UIImage decodedImageWithImage:image]
這個(gè)方法的鍋.
http://blog.csdn.net/guojiezhi/article/details/52033796
這篇文章解釋的很好,也有解決方法,就是可能版本比較老. 這里謝謝大神解惑,轉(zhuǎn)一個(gè).
然后解決方法:
其實(shí)SD的作者也有說(shuō)明:

所以解決方案就出爐了:
[SDImageCache sharedImageCache].config.shouldDecompressImages = NO;
[SDWebImageDownloader sharedDownloader].shouldDecompressImages = NO;
要注意,這些都是單例...哪里用寫哪里,如果不想影響其他圖片加載,最好再改變回默認(rèn)值,也就是都YES就行了.
PS: 以上兩種方案只是針對(duì)高清圖片展示時(shí)的內(nèi)存飆升,對(duì)于加載大量圖片導(dǎo)致內(nèi)存持續(xù)升高...暫時(shí)只有定期清理SD的緩存了...有大觸知道方法求告知...