(iphone)UIImage内存管理问题

时间:2011-01-10 17:42:36

标签: iphone memory-management uiimage

我遇到了UIImage内存管理问题 (iphone) my app gets memory warning when instruments shows "all allocations" only 7mb?

基本上,我多次创建/销毁UIImage 即使我使用本地NSAutoreleasePool将内存消耗降低,iphone / ipad设备也会不断抱怨内存使用情况。

我在想,我应该将UIImage分配给我可以指定的特定内存缓冲区(或缓冲池)。
这可能吗?

或者如何在不惹恼iOS的情况下多次创建/销毁UIImages的任何其他建议将非常感激。

谢谢。

2 个答案:

答案 0 :(得分:10)

这不是一个众所周知的事实,但是仪器没有考虑分配内存中UIImages的大小。你可能会泄漏100Mb的UIImages,分配的内存不能说明这个故事。讲述故事的是在给定时刻的实时UIImage实例的数量。

Allocations 工具中,使用右上角的搜索框搜索“Image”。然后在UIImage中查找标记为#linving的列。该数字是UIImage对象的数量。这是一个更好的指南针来确定你的UIImages在哪里。如果在某些时候你有比你想象的更多的对象,并且这些UImage不会消失你手中的UIImage泄漏。 UIImage泄漏会快速杀死你的应用程序。

答案 1 :(得分:2)

  

CGImage的波动不超过我的想象(最大6+).. umm可能6+ = 6mg,基线10mg = 16Mg触发警告

CGImages未自动发布,您应致电CGImageRelease(image);