我的视图控制器中的UIImageView属性设置为“assign”。每次按下按钮,我都会将视图中的图像设置为新的。由于我使用另一个组件的方式,我必须每次更改图像时删除InfromSuperView并释放UIImageView然后重新添加它。这似乎没有造成内存问题 - 当使用现有的UIImageView而不释放它时,内存仍然会上升(但是存在大小问题,这就是我重新创建它的原因。)
出于某种原因,使用setImage会将应用程序的内存使用量增加约0.8mb(图像大小)。当我没有设置图像时,内存似乎保持相对恒定。有什么想法吗?
[self.pictureView setImage: img];
[self.pictureView setFrame: CGRectMake(0,0,[img size].width, [img size].height)];
[img release];
答案 0 :(得分:1)
我认为你正在泄漏UIImageView,当你泄漏UIImageView时,你正在泄漏图像。
这取决于您如何重新创建UIImageView。在将新图像视图设置为属性之前,请确保释放旧图像视图。
最好将该属性设置为retain,因为当您将新值设置为retain属性时,它会释放旧实例。
答案 1 :(得分:0)
在设置图像以清除引用之前,可能将UIImageView设置为nil?
pictureView.image=nil;