方法一、
UIImage *image = [UIImage imageNamed:@"test.png"];
這個(gè)方法創(chuàng)建的圖片是從緩存里面獲取的,先在緩存里查看陈辱,看是不是有這個(gè)圖片,沒(méi)有的話見(jiàn)圖片添加到緩存再使用。有的話直接使用緩存里面的掀淘。在程序中,如果這個(gè)圖片要在多個(gè)地方使用的話改基,建議使用這個(gè)方法繁疤。缺點(diǎn)是:一旦加入到緩存中就一直占用內(nèi)存,不能被釋放掉秕狰。
方法二稠腊、
//讀取本地圖片路徑
NSString *imagePath=[NSString stringWithFormat:@"%@/Documents/
%@.jpg",NSHomeDirectory(),@"test"];
[UIImage imageWithContentsOfFile:imagePath];
從手機(jī)本地讀取,比較第一種方式鸣哀,這個(gè)是直接加載圖片的架忌,圖片不需要的時(shí)候,可以release掉我衬。所以建議在使用重復(fù)率低的地方使用這種方法叹放。
方法三饰恕、
// 下面的這種方式會(huì)出現(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)求埋嵌,如果在主線程直接使用的話,會(huì)卡主線程俱恶,因此一般不會(huì)在主線程中直接使用雹嗦,而是采用異步網(wǎng)絡(luò)請(qǐng)求獲得data的值。