正确加载UIImages?内存管理与“泄漏”

时间:2011-02-16 23:57:20

标签: iphone memory-management uiimage

我已经创建了一个小游戏,当用户在移动时触摸屏幕时会加载图像。它取决于屏幕位置立即加载不同的图像。 我有一个UIImageView,因为在“touchesMoved”函数中,我正在加载这样的不同图像:

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

现在我希望使用带有“Allocations”的仪器来改善我的记忆管理。 “记忆监视器”。这里我用“Mark Heap”点设置不同的快照并寻找泄漏。上面的行突出显示,现在我想知道它有什么问题。我怎样才能改善图像加载(没有缓存)?

3 个答案:

答案 0 :(得分:0)

阅读此Dispelling the UIImage imageNamed: FUD

并且还阅读问题中的链接。应该回答你需要的一切。

答案 1 :(得分:0)

首先:imageNamed:缓存图片。 如果您突出显示此行,则有两个可能的原因(或两者):

  1. 您没有正确发布imageView
  2. 你没有正确发布照片数组

答案 2 :(得分:0)

+imageNamed返回一个自动释放的对象,但UIImageView中的@property image通过其使用保留它直到被覆盖。 -objectAtIndex:必须返回一个保留计数为1且未释放的对象。

如果问题确实存在,那么修复就是

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

但我怀疑这是真正的问题。