#iphone #memory-leaks #uiimageview #release
#iPhone #утечки памяти #uiimageview #освободить
Вопрос:
Я выделил UIImageView внутри метода setBackground моей ячейки tableview следующим образом:
[cell setBackgroundView:[[UIImageView alloc]initWithImage:rowBackground]];
Когда я запускаю Analyse в XCode 4, он выделяет эту строку как возможную утечку памяти. Как мне освободить этот UIImageView, если я не получил указатель на ссылку из вызова release?
Ответ №1:
Вы можете либо выделить его по-другому (т. Е. Сохранить его в ivar и выпустить его), либо вызвать autorelease
для него, вот так:
[cell setBackgroundView:[[[UIImageView alloc]initWithImage:rowBackground] autorelease]];
Комментарии:
1. Я только что разобрался с этим. Я пробовал авторелизинг таким образом, но по какой-то причине Code Sense это не понравилось. Сделал это вместо того, чтобы это сработало.
2. cell.backgroundView = [[[Выделение UIImageView]initWithImage:rowBackground] авторелиз];
Ответ №2:
Отправьте ему сообщение об авторелизе:
[cell setBackgroundView:[[[UIImageView alloc]initWithImage:rowBackground] autorelease]];
Сообщением об автоматическом выпуске вы заявляете, что не хотите владеть объектом за пределами области, в которой вы отправили сообщение.