我已經編寫了代碼,當您點擊按鈕時,它會打開帶有圖像的新屏幕。在新的屏幕上有按鈕可以關閉屏幕,並返回到主屏幕。它工作正常,如果我做這樣的(無泄漏等):iPhone/iPad UIImage initWithContentsOfFile:
img = [UIImage imageNamed: @"Galaxy"];
ImageDisplay *display = [[ImageDisplay alloc] initWithImage:img];
但是,如果我有這樣的替換這行代碼:
img = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Minnesota" ofType:@"png"]];
ImageDisplay *display = [[ImageDisplay alloc] initWithImage:img];
[img release];
它作爲我有內存泄漏。每次我打開圖像屏幕,應用程序需要越來越多的內存。但是所有的dealloc都被調用,即使[img retainCount]在最終發佈之前顯示1。有沒有可能在這裏有一個錯誤,因爲我找不到什麼錯誤?
編輯:
這裏是ImageDisplay dealloc方法,這種方法被稱爲:
-(void) dealloc {
[img release];
[super dealloc];
}
豈不是更好/比'initWithContentsOfFile'快? – 2013-04-08 13:30:07
我剛剛嘗試過,它比你的方式消耗的內存少得多。 – 2013-06-13 17:05:23