Iphone 释放未使用init创建的图像

Iphone 释放未使用init创建的图像,iphone,objective-c,ios,xcode,ipad,Iphone,Objective C,Ios,Xcode,Ipad,大家好,我有下一期,我正在创作这样的各种图像 UIImage *image = [UIImage imageNamed:_imageName]; 我分配给一个UIImageView [self.imgvImage setImage:image]; 用户点击按钮时,创建一个UIImageView并分配一个UIImageView,我在创建新视图时创建了4个UIImageView,最后一个视图被删除,向UIImageView发送如下版本 [_imgvImage release]; 但是创建和释放

大家好,我有下一期,我正在创作这样的各种图像

UIImage *image = [UIImage imageNamed:_imageName];
我分配给一个UIImageView

[self.imgvImage setImage:image];
用户点击按钮时,创建一个UIImageView并分配一个UIImageView,我在创建新视图时创建了4个UIImageView,最后一个视图被删除,向UIImageView发送如下版本

[_imgvImage release];
但是创建和释放一个内存的次数超过了100次,但是应用程序不会崩溃,我认为这是因为创建的UIImages没有释放,而且有很多,因为所有的代码都是干净的,创建和释放都很好

如何将所有UIIMageView及其UIImage完全从内存中删除


请帮忙,对不起我的英语不好

使用以下语句创建的图像由iOS处理。此图像存储在缓存中,以便下次调用此图像时,只需从缓存中返回即可

UIImage *image = [UIImage imageNamed:_imageName];
我认为,只要释放正在分配的内容,就不应该担心内存警告(在本例中为UIImageView)。iOS应清除此缓存以防内存不足


如果您不希望缓存(例如,当您只加载一个图像一次时),可以使用imageWithContentsOfFile:method of UIImage。

您好,我找到了解决方案,解决方案是调用

NSAutoreleasePool
在移除视图对象时的方法中,如下所示:

for(ProductVW *pVW in [_vwProductsContainer subviews]){

            NSAutoreleasePool * autoreleasePool = [[NSAutoreleasePool alloc] init];

            [pVW removeFromSuperview];

            [autoreleasePool release];

}

非常感谢@MSK我不想缓存这些图像我要尝试使用imageWithContentsOfFile,我会告诉你的!你的回答很好,但对我来说不是,因为我有一个类,发现了图像(如果不存在)从internet下载,但当图像建立时,图像设置在我提出请求的类中,并且给出的图像是一个自动删除的图像,不存在内存泄漏,谢谢。@NTTake除了我关于显示给我们的其他注释之外属性/ivar声明和创建图像视图的代码,您可能也想向我们展示这些代码。这不是一个好的解决方案。毫无疑问,您的问题在于如何创建ImageView(我希望它们是通过
autorelease
创建的,或者在将它们添加到视图中后立即明确发布
版本
),以及如何为ImageView声明
@属性。如果共享变量声明以及用于创建和删除ImageView的代码,那么解决方案将很简单。但是如果没有更完整的代码示例,我们无法给出建议。嗨@RobertRyan谢谢您的回复,但我现在不知道为什么我有一个类(FindImage.h/.m)在其他类(Product.h/m)中为我提供UIImage当我创建一个产品时,我会在FindImage中请求该图像,该请求会给我一个UIIMage,如下所示
UIIMage*image=nil;图像=[UIImage imageName:_imageName];[_delegatefindimagefoundimage:image]
并且在产品中,当接收到图像时,设置为UIImageView,如下所示
UIImageView*imgVW=[[UIImageView alloc]initWithImage:image];self.imgvProduct=imgVW;[imgVW发布];[自添加子视图:_imgvProduct]帮助认真地说,如果需要帮助,请发布代码(以及上面几行以外的内容;发布影响保留计数的所有内容)。通过更新你的问题(代码清晰)而不是评论(代码不清晰)来实现。试图根据注释中的一两个片段诊断问题是一件痛苦的事情。不过,有几个即时反应:1。如果找不到图像,我不明白
FindImageFoundImage
会做什么。2.IMGV产品是如何申报的?(如果是保留/复制,您是否稍后将其设置为零?您确定以后不会意外使用ivar?等等)