麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

來回加載大量圖片內(nèi)存溢出的問題

2019-11-09 14:16:26
字體:
供稿:網(wǎng)友
總結(jié)一下UIImage的內(nèi)存使用及管理用UIImage加載圖像的方法很多,最常用的是下面兩種:1.用imageNamed函數(shù)[UIImage imageNamed:ImageName];2.用NSData的方式加載,例如:NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:extension]; NSData *image = [NSData dataWithContentsOfFile:filePath]; [UIImage imageWithData:image];由于第一種方式要寫的代碼比較少,可能比較多人利用imageNamed的方式加載圖像。其實(shí)這兩種加載方式都有各自的特點(diǎn)。1)用imageNamed的方式加載時(shí),系統(tǒng)會(huì)把圖像Cache到內(nèi)存。如果圖像比較大,或者圖像比較多,用這種方式會(huì)消耗很大的內(nèi)存,而且釋放圖像的內(nèi)存是一件相對來說比較麻煩的事情。例如:如果利用imageNamed的方式加載圖像到一個(gè)動(dòng)態(tài)數(shù)組NSMutableArray,然后將將數(shù)組賦予一個(gè)UIView的對象的animationImages進(jìn)行逐幀動(dòng)畫,那么這將會(huì)很有可能造成內(nèi)存泄露。并且釋放圖像所占據(jù)的內(nèi)存也不會(huì)那么簡單。但是利用imageNamed加載圖像也有自己的優(yōu)勢。對于同一個(gè)圖像系統(tǒng)只會(huì)把它Cache到內(nèi)存一次,這對于圖像的重復(fù)利用是非常有優(yōu)勢的。例如:你需要在一個(gè)TableView里重復(fù)加載同樣一個(gè)圖標(biāo),那么用imageNamed加載圖像,系統(tǒng)會(huì)把那個(gè)圖標(biāo)Cache到內(nèi)存,在Table里每次利用那個(gè)圖像的時(shí)候,只會(huì)把圖片指針指向同一塊內(nèi)存。這種情況使用imageNamed加載圖像就會(huì)變得非常有效。2)利用NSData方式加載時(shí),圖像會(huì)被系統(tǒng)以數(shù)據(jù)方式加載到程序。當(dāng)你不需要重用該圖像,或者你需要將圖像以數(shù)據(jù)方式存儲(chǔ)到數(shù)據(jù)庫,又或者你要通過網(wǎng)絡(luò)下載一個(gè)很大的圖像時(shí),請盡量使用imageWithData的方式加載圖像。無論用哪種方式加載圖像,圖像使用結(jié)束后,一定要記得顯示釋放內(nèi)存。所以當(dāng)程序要加載大量圖片時(shí)應(yīng)盡量使用第二種方法。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 羞羞视频免费网站男男 | 中文字幕电影免费播放 | 成人小视频免费在线观看 | 深夜福利久久久 | 亚洲综合91 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 草草视频免费 | 亚洲午夜天堂吃瓜在线 | 羞羞的视频 | 国产成人精品自拍视频 | 奇米888一区二区三区 | 夏目友人帐第七季第一集 | 国产亚洲黑人性受xxxx精品 | 黄网站免费观看视频 | 欧美精品色精品一区二区三区 | 精品国产91久久久久久 | asian裸体佳人pics | 成人短视频在线播放 | 免费a级毛片大学生免费观看 | 久久久婷婷一区二区三区不卡 | 牛牛视频在线 | 真人一级毛片免费 | 国产精品久久久久久久亚洲按摩 | 日本高清黄色片 | 久久久成人免费视频 | 日本欧美一区二区三区视频麻豆 | 日本羞羞的午夜电视剧 | 久久91亚洲人成电影网站 | 国产成人精品自拍视频 | vidz 98hd| 黄视频网址 | 强伦女教师视频 | 久久国产一二三 | 免费一级欧美大片视频 | 久久久精品网站 | 日韩精品久久久久久 | 午夜小视频免费观看 | 久久草草影视免费网 | 黄色羞羞视频在线观看 | 一级电影免费看 | 国产日本在线 |