Я написал код, который, когда вы нажимаете кнопку, открывает новый экран с изображением на нем. На этом новом экране есть кнопка, которая увольняет экран и возвращается на главный экран. И это прекрасно работает, если я делаю это так (нет утечки и т.д. ...):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];
Он не действует, как я есть память утечка. Каждый раз, когда я открываю экран изображения, приложение занимает все больше памяти. Но все deallocs вызываются, даже [img retainCount] показывает 1 до окончательной версии. Есть ли вероятность, что здесь есть ошибка, потому что я не могу найти что-то неправильно?
EDIT:
Вот dealloc метод ImageDisplay, и этот метод вызывается:
-(void) dealloc {
[img release];
[super dealloc];
}
это лучше/быстрее, чем 'initWithContentsOfFile'? –
Я только что попробовал, он потреблял гораздо меньше памяти, чем ваш. –