嗨,我每个人都有下一个问题,我正在创建像这样的各种图像
UIImage *image = [UIImage imageNamed:_imageName];
我正在分配给一个UIImageView
[self.imgvImage setImage:image];
用户在点击按钮时创建一个UIImageView并分配一个UIImage,我创建了4个UIImageViews,最后一个被删除发送到UIImageView这样的发布
[_imgvImage release];
但是,创造和释放一次内存交战的时间不止100次,但应用程序不会崩溃我认为这是因为创建的UIImages没有释放,因为所有代码都很干净,创建和释放都很好。
如何从内存中完全删除所有带有UIImage的UIIMageView。
请帮忙,抱歉我的英语不好。
答案 0 :(得分:1)
使用以下语句创建的图像由iOS处理。此图像存储在缓存中,以便下次调用它时,只需从缓存中返回。
UIImage *image = [UIImage imageNamed:_imageName];
我认为只要您发布正在分配的内容(在本例中为UIImageView),您就不必担心内存警告。 iOS应该在内存崩溃的情况下清除此缓存。
如果您不想进行缓存(例如,当您只加载一次图像时),可以使用imageWithContentsOfFile:UIImage方法。
答案 1 :(得分:-2)
您好我找到了解决方案称为
的解决方案NSAutoreleasePool
在我删除视图对象时的方法中:
for(ProductVW *pVW in [_vwProductsContainer subviews]){
NSAutoreleasePool * autoreleasePool = [[NSAutoreleasePool alloc] init];
[pVW removeFromSuperview];
[autoreleasePool release];
}