我已经创建了一个小游戏,当用户在移动时触摸屏幕时会加载图像。它取决于屏幕位置立即加载不同的图像。 我有一个UIImageView,因为在“touchesMoved”函数中,我正在加载这样的不同图像:
imageView.image = [UIImage imageNamed: [photos objectAtIndex: newImage ] ] ;
现在我希望使用带有“Allocations”的仪器来改善我的记忆管理。 “记忆监视器”。这里我用“Mark Heap”点设置不同的快照并寻找泄漏。上面的行突出显示,现在我想知道它有什么问题。我怎样才能改善图像加载(没有缓存)?
答案 0 :(得分:0)
阅读此Dispelling the UIImage imageNamed: FUD
并且还阅读问题中的链接。应该回答你需要的一切。
答案 1 :(得分:0)
首先:imageNamed:缓存图片。 如果您突出显示此行,则有两个可能的原因(或两者):
答案 2 :(得分:0)
+imageNamed
返回一个自动释放的对象,但UIImageView中的@property image
通过其使用保留它直到被覆盖。 -objectAtIndex:
必须返回一个保留计数为1且未释放的对象。
如果问题确实存在,那么修复就是
imageView.image = [UIImage imageNamed: [[photos objectAtIndex: newImage ] autorelease]];
但我怀疑这是真正的问题。