Iphone UIImageView内存问题
我的视图控制器中的UIImageView属性设置为“分配”。每次我按下一个按钮,我都会将视图中的图像设置为新的内容。由于我使用另一个组件的方式,每次更改图像并重新添加时,我都必须从SuperView中移除并释放UIImageView。这似乎并没有导致内存问题——当使用现有UIImageView而不释放它时,内存仍然会增加(但存在大小问题,这就是我重新创建它的原因) 出于某种原因,使用setImage将使应用程序的内存使用量增加约0.8mb(图像大小)。当我不设置图像时,记忆似乎保持相对恒定。你知道为什么吗Iphone UIImageView内存问题,iphone,objective-c,memory,uiimageview,Iphone,Objective C,Memory,Uiimageview,我的视图控制器中的UIImageView属性设置为“分配”。每次我按下一个按钮,我都会将视图中的图像设置为新的内容。由于我使用另一个组件的方式,每次更改图像并重新添加时,我都必须从SuperView中移除并释放UIImageView。这似乎并没有导致内存问题——当使用现有UIImageView而不释放它时,内存仍然会增加(但存在大小问题,这就是我重新创建它的原因) 出于某种原因,使用setImage将使应用程序的内存使用量增加约0.8mb(图像大小)。当我不设置图像时,记忆似乎保持相对恒定。你知
[self.pictureView setImage: img];
[self.pictureView setFrame: CGRectMake(0,0,[img size].width, [img size].height)];
[img release];
在设置图像以清除引用之前,是否可以将UIImageView设置为nil
pictureView.image=nil;
在设置图像以清除引用之前,是否可以将UIImageView设置为nil
pictureView.image=nil;
我认为您正在泄漏UIImageView,当您泄漏UIImageView时,您正在泄漏其中的图像 这取决于如何重新创建UIImageView。在将新图像视图设置为属性之前,请确保释放旧图像视图
最好将属性设置为retain,因为当您将新值设置为retain属性时,它会释放旧实例。我认为您正在泄漏UIImageView,而当您泄漏UIImageView时,您正在泄漏其中的图像 这取决于如何重新创建UIImageView。在将新图像视图设置为属性之前,请确保释放旧图像视图
最好将属性设置为retain,因为当您将新值设置为retain属性时,它会释放旧实例。我也尝试将其设置为retain,但似乎没有帮助。。。我正在执行removeFromSuperView并直接在显示的代码之前发布,然后我也像这样重新初始化视图:self.pictureView=[[UIImageView alloc]init];嗯,我认为这会导致价值的双重保留。alloc保留一次,retain属性保留两次。尝试在“alloc]init]之后调用autorelease]“嘿,这(一半)修复了它:D还有一个漏洞,但我认为这是无关的。谢谢我也试过用它来保留,但似乎没有帮助。。。我正在执行removeFromSuperView并直接在显示的代码之前发布,然后我也像这样重新初始化视图:self.pictureView=[[UIImageView alloc]init];嗯,我认为这会导致价值的双重保留。alloc保留一次,retain属性保留两次。尝试在“alloc]init]之后调用autorelease]“嘿,这(一半)修复了它:D还有一个漏洞,但我认为这是无关的。谢谢