我有一个应用程序被iPhone OS弹出"低内存".
我已通过仪器通过它,我看到零泄漏,内存使用量约为640 kb.
将对象添加到屏幕时,应用程序崩溃.
这是它的工作原理.我有一个基于UIImageView的类非常简单,并为对象添加了一些属性.此类用于创建的对象.
当用户点击按钮时,将创建该类的新图像并将其添加到self.view.
添加约15个对象后,应用程序弹出低内存警告.
仪器报告没有显着的内存使用.即使添加了15个对象,ALL ALLOCATIONS条目也不会超过660 kb.每个对象可以是五个120x120像素图像中的一个.
如果不是对象分配或泄漏,那会是什么?请告诉我应该遵循哪些方向来找到问题.
谢谢你的帮助.
ObjectAlloc工具不指示应用程序中的所有内存使用情况.视图和其他可视元素在ObjectAlloc中未显示其完整大小,因此您需要使用Memory Monitor工具在任何给定时间查看应用程序的实际内存大小.
此外,仅仅因为仪器不报告泄漏并不意味着它们不在那里.通过Clang Static Analyzer运行您的应用程序,再次查看潜在的内存泄漏(通过Xcode 3.2下的Build | Build and Analyze或下载独立工具).同样,即使这个过去了,你仍然看到不断增加的内存消耗,你就会在某个地方泄漏.
您在评论中提到使用Quartz绘图.您需要记住Quartz中使用的Core Foundation对象也遵循特定的内存管理模型,其中您使用Create
其名称中的函数创建的所有内容都必须使用匹配函数来释放CFRelease()
.如果忘记这一点,这可能不会显示为泄漏,但确实如此.