一, [UIImage imageNamed]
UIImage * image0 = [UIImage imageNamed:@"111"];
此方法是很常用的方法,是從 [NSBundld? mainBundle]上部查找圖片,然后加載到圖片到內(nèi)存的緩存中,加到緩存的好處是能夠快速的加載圖片,如果該圖片在其他地方也經(jīng)常使用,建議使用imageNamed.
但是使用該方法創(chuàng)建的對(duì)象在被autoReleasePool釋放的時(shí)候,內(nèi)存里的圖片緩存是不釋放的.而且是沒(méi)有明確的釋放方法.所以,如果圖片比較大,用這種方法會(huì)消耗很大的內(nèi)存.
圖片緩存,對(duì)象是被autoreleasePool釋放的時(shí)候釋放.
二, [UIImage imageWithContentsOfFile]
UIImage * image1 = [UIImage imageWithContentsOfFile:@"1111"];
此方法加載的圖片是不會(huì)緩存的.得到的對(duì)象是autoRelease的,當(dāng)autoReleasePool釋放對(duì)象時(shí)才釋放內(nèi)存.
圖片不緩存,對(duì)象被autoreleasePool釋放的時(shí)候釋放.
三, [[UIImage alloc] initWithContentsFile]
UIImage * image2 = [[UIImage alloc] initWithContentsOfFile:@"111"];
此方法是手動(dòng)Release的,系統(tǒng)不緩存.對(duì)象release之后立即釋放.一般用于封面等圖片比較大的地方.
圖片不緩存,對(duì)象被release之后立即釋放.