2010-12-21 69 views
0

我开发了一个简单的应用程序,其中设计或制作代码,在其中创建和实例对象的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中的内存泄漏问题?

回答

4

在此行中:

_renderImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsGetImageFromCurrentImageContext()返回一个新的自动释放UIImage和点_renderImage伊娃它。以前分配的UIImage从来没有实际发布过,它的变量只是被重新指定到其他地方。

This abandoned UIImage cause/is the memory leak。您应该在将_renderImage指向其他内容之前释放它,否则您可能不会首先分配它。

+0

谢谢。它现在很好地工作... – Tirth 2010-12-22 07:56:06

+2

我们如何在将它分配给别的东西之前释放它? – 2014-02-17 07:25:59

+0

这是否适用于ARC?如果是这样,我们如何释放它? – 2015-10-21 08:56:09