Как решить проблему утечки памяти? - PullRequest
0 голосов
/ 21 декабря 2010

Я разрабатываю простое приложение, в котором проектирую или создаю код, в котором я создаю и создаю экземпляр объекта UIImage. Когда я пролистываю экран Ipad, он образует изображение экрана и это изображение, которое я отрисовываю в объект UIImage, после чего это изображение я устанавливаю в объект UIImageView и объект UIimage освобождается. Каждый раз, когда я провожу пальцем по экрану и выше, процесс повторяется снова и снова. Но это дает мне утечку в renderImage = [[UIImage alloc] init];.

код

_renderImage = [[UIImage alloc] init];

_textImageV = [[UIImageView alloc] init];

[self renderIntoImage];

-(void)renderIntoImage
{

    UIGraphicsBeginImageContext(bgTableView.bounds.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    _renderImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}

 _textImageV.image = _renderImage;
[_renderImage release];

после завершения процесса смахивания я также выпускаю _textImageV.

Как мне решить проблему утечки памяти в UIImage * _renderImage?

1 Ответ

4 голосов
/ 21 декабря 2010

В этой строке:

_renderImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsGetImageFromCurrentImageContext() возвращает нового автоматически выпущенного UIImage и указывает на него _renderImage ivar.Ранее выделенное значение UIImage фактически никогда не освобождается, переменная для него просто переназначается куда-либо еще.

Это заброшенное значение UIImage вызывает / является утечкой памяти.Вам следует либо отпустить его, прежде чем указывать _renderImage на что-то другое, либо вы просто не могли бы выделить его в первую очередь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...