iOS UIImage初始化一張圖片的方法及優(yōu)缺點(diǎn)

方法一、

UIImage *image = [UIImage imageNamed:@"test.png"];

這個(gè)方法創(chuàng)建的圖片是從緩存里面獲取的,先在緩存里查看,看是不是有這個(gè)圖片,沒(méi)有的話(huà)見(jiàn)圖片添加到緩存再使用。有的話(huà)直接使用緩存里面的。在程序中,如果這個(gè)圖片要在多個(gè)地方使用的話(huà),建議使用這個(gè)方法。缺點(diǎn)是:一旦加入到緩存中就一直占用內(nèi)存,不能被釋放掉。

方法二、

//讀取本地圖片路徑

NSString *imagePath=[NSString stringWithFormat:@"%@/Documents/

%@.jpg",NSHomeDirectory(),@"test"];

[UIImage imageWithContentsOfFile:imagePath];

從手機(jī)本地讀取,比較第一種方式,這個(gè)是直接加載圖片的,圖片不需要的時(shí)候,可以release掉。所以建議在使用重復(fù)率低的地方使用這種方法。

方法三、

// 下面的這種方式會(huì)出現(xiàn)卡線(xiàn)程的情況,所以建議在子線(xiàn)程中操作

// imageWithData: data

NSURL *url = [NSURL URLWithString:@“http://e.picphotos.baidu.com/album/s%3D550%3Bq%3D90%3Bc%3Dxiangce%2C100%2C100/sign=f51d2708cb11728b342d8c27f8c7b2f3/bba1cd11728b47109d0f5555c5cec3fdfc032302.jpg?referer=f55e30e2d71373f0ac285aaf8d00&x=.jpg"];

UIImage *image2 = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];

需要注意的是,如果imageWithData:是同步網(wǎng)絡(luò)請(qǐng)求,如果在主線(xiàn)程直接使用的話(huà),會(huì)卡主線(xiàn)程,因此一般不會(huì)在主線(xiàn)程中直接使用,而是采用異步網(wǎng)絡(luò)請(qǐng)求獲得data的值。

最后編輯于
?著作權(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)容