我如何解决内存泄漏问题?

时间:2010-12-21 11:43:48

标签: iphone ipad memory-management memory-leaks

我开发了一个简单的应用程序,在其中设计或创建我创建的代码和UIImage的实例对象。当我在Ipad屏幕上翻转时,它构成了一个sreen的图像,然后我将该图像渲染到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 个答案:

答案 0 :(得分:4)

在这一行:

_renderImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsGetImageFromCurrentImageContext()会返回一个新的自动释放UIImage,并将_renderImage ivar指向它。以前分配的UIImage实际上从未被释放,它的变量只是被重新命名为其他地方。

这个被遗弃的UIImage导致/是内存泄漏。您应该在将_renderImage指向其他内容之前释放它,或者您可能不会首先分配它。