我开发了一个简单的应用程序,在其中设计或创建我创建的代码和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中的内存泄漏问题?
答案 0 :(得分:4)
在这一行:
_renderImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsGetImageFromCurrentImageContext()
会返回一个新的自动释放UIImage
,并将_renderImage
ivar指向它。以前分配的UIImage
实际上从未被释放,它的变量只是被重新命名为其他地方。
这个被遗弃的UIImage
导致/是内存泄漏。您应该在将_renderImage
指向其他内容之前释放它,或者您可能不会首先分配它。