我有很多内存泄漏...
例如,我有一个UIImageView,图像每次更新时都会翻转(动画约为30fps,因此该图像会更新并翻转很多)
image2 = [[UIImage alloc] initWithCGImage:image2.CGImage scale:image2.scale orientation:UIImageOrientationUpMirrored];
它正在发生大量的内存泄漏,因此在将其翻转一次后就将其释放:
image2 = [[UIImage alloc] initWithCGImage:image2.CGImage scale:image2.scale orientation:UIImageOrientationUpMirrored];
[image2 release];
但问题不是,如果我再次尝试运行该代码,应用程序将冻结(我猜您无法释放某些内容,然后再次使用它?(对于整个内存分配而言,Kinda是新手……)
我该怎么办?如果图像已发布,我是否要在尝试翻转图像之前重新定义它?谢谢!
最佳答案
可能最简单的方法是将image2保留为属性,然后将其分配给self.image2
而不是普通的image2
。每当分配新值时,这都会释放旧图像。但是您随后需要在autorelease
调用中添加[UIImage alloc] init...
调用以释放alloc
完成的保留。