我有很多内存泄漏...
例如,我有一个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完成的保留。

10-05 20:24