iOS高級-大量圖片展示出現的內存警告問題


最近在做一個相冊類的應用,但是在內存方面一直出現這一些問題,原因就是有着大量圖片顯示和存取,這里整理一下查到的資料,列舉一下造成內存警告的潛在原因

1.imageName創建UIimage的時候實際上只是在Bundle內查找到文件名,然后把文件名返回,並沒有對文件驚醒讀取和解碼,當UIImage第一次顯示在屏幕的時候解碼方法才會被調用,並且會保存到一個全局緩存當中,且APP第一次退出或者受到內存警告的時候才會被清空。!!!

2.imageWithData同樣也不能避免緩存

3.如何避免緩存,把圖片用 CGContextDrawImage() 繪制到畫布上,然后把畫布的數據取出來當作圖片。

4.cell重用問題,老生常談,要注意的就是footer header的復用,

- (nullable __kindof UITableViewHeaderFooterView *)dequeueReusableHeaderFooterViewWithIdentifier:(NSString *)identifier

 

究其原因,一方面是相片本身大小,iphone相機返回的照片都在2M左右,而每個app如果內存超過20M就會爆出內存警告,解決辦法,壓縮圖片大小:

UIImageJPEGRepresentation(image1, kCompressionQuality)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM