Iphone 是否正确加载图像?带有“泄漏”的内存管理

Iphone 是否正确加载图像?带有“泄漏”的内存管理,iphone,memory-management,uiimage,Iphone,Memory Management,Uiimage,我创建了一个小游戏,当用户在移动时触摸屏幕时,会加载图像。根据屏幕位置立即加载不同的图像。 我有一个UIImageView,因为在TouchsMoved函数中,我加载了不同的图像,如下所示: imageView.image = [UIImage imageNamed: [photos objectAtIndex: newImage ] ] ; 现在我想使用带有分配和内存监视器的工具来改进我的内存管理。在这里,我用标记堆点设置不同的快照,并查找泄漏。上面这一行突出显示了,现在我想知道它有什么

我创建了一个小游戏,当用户在移动时触摸屏幕时,会加载图像。根据屏幕位置立即加载不同的图像。 我有一个UIImageView,因为在TouchsMoved函数中,我加载了不同的图像,如下所示:

 imageView.image =  [UIImage imageNamed: [photos objectAtIndex: newImage ] ] ;
现在我想使用带有分配和内存监视器的工具来改进我的内存管理。在这里,我用标记堆点设置不同的快照,并查找泄漏。上面这一行突出显示了,现在我想知道它有什么问题。。如何在没有缓存的情况下改进图像加载?

请阅读本文


并阅读问题中的链接。应该回答您需要的所有问题。

首先:ImageName:缓存图像。 如果您突出显示了这一行,则可能有两个原因,或者两者都有:

您没有正确地释放imageView 您没有正确释放照片阵列 +imageNamed返回一个自动释放的对象,但UIImageView中的@property图像在被覆盖之前会一直保留它-objectAtIndex:必须返回保留计数为1且未释放的对象

如果这确实是问题所在,那么解决办法就是

imageView.image =  [UIImage imageNamed: [[photos objectAtIndex: newImage ] autorelease]];

然而,我怀疑这才是真正的问题。

糟糕的解决方案。你必须找到泄漏的真正原因,不需要像这样修复它。