2013-12-11 123 views
0

我正在製作iPad雜誌,並且使用了大量圖像(背景,幻燈片和動畫),並且使用的內存非常高。圖像優化(iOS)

我讀過下面的方法使用了大量的內存

UIImage *picture = [UIImage imageNamed:@"myFile.png"]; 

他們建議使用這一個

NSString *fullpath = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/myFile.png"]; 
imageView.image = [UIImage imageWithContentsOfFile:fullpath]; 

但我發現了另一個方法以及

imageView.image = [[UIImage alloc] initWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"myFile" ofType:@"png"]]; 

爲了優化我的應用程序,我應該使用哪種方法?我的所有圖像都是.jpg,並保存爲Photoshop中的網頁。

+0

更好的管理「我讀過下面的方法使用的內存了很多」是不正確的本身。另外,這與Xcode無關。 – 2013-12-11 14:14:42

回答

2

所有3種方法將使用相同數量的內存。差異如下:

使用[UIImage imageNamed:@"myFile.png"]圖像緩存在內存中以加快重用。這對於在應用程序中使用多次的小圖像很有用(圖像背景等)。收到內存警告時,高速緩存將被刪除以用於未使用的映像。

使用[[UIImage alloc] initWithContentsOfFile:path]圖像未被緩存,您可以通過調用[image release]或使用ARC將屬性設置爲零來「強制」釋放內存。你有當內存被釋放

使用[UIImage imageWithContentsOfFile:fullpath]只是相當於[[[UIImage alloc] initWithContentsOfFile:path]autorelease]