方法一、
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的值。