Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIImageView内存问题_Iphone_Objective C_Memory_Uiimageview - Fatal编程技术网

Iphone UIImageView内存问题

Iphone UIImageView内存问题,iphone,objective-c,memory,uiimageview,Iphone,Objective C,Memory,Uiimageview,我的视图控制器中的UIImageView属性设置为“分配”。每次我按下一个按钮,我都会将视图中的图像设置为新的内容。由于我使用另一个组件的方式,每次更改图像并重新添加时,我都必须从SuperView中移除并释放UIImageView。这似乎并没有导致内存问题——当使用现有UIImageView而不释放它时,内存仍然会增加(但存在大小问题,这就是我重新创建它的原因) 出于某种原因,使用setImage将使应用程序的内存使用量增加约0.8mb(图像大小)。当我不设置图像时,记忆似乎保持相对恒定。你知

我的视图控制器中的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还有一个漏洞,但我认为这是无关的。谢谢