我有一个iPad应用程序在iPad上崩溃(第一个模型),因为它内存不足。真正的内存不断增加 - 从视图中删除子视图 - iOS(ARC)
在应用程序中,我有一个主视图,其中添加了20 UIScrollViews
(自定义类)的子视图,每个视图都包含UIImageView
和UIImage
。当用户移动到下一页时,我从超级视图中删除所有这些子视图,然后将20个新的UIScrollViews
添加到同一视图。
如果我剖析应用程序的分配和内存泄漏,一切正常 - 分配的内存保持在2MB左右,而用户左右滚动。
但是,如果我看一下活动监视器中真正的内存使用情况,我可以看到每当用户移动到新页面时,实际内存就会增加大约20MB。最终在几个新页面后,应用程序大小达到150多MB并崩溃。
任何人都可以提出什么可能会导致这种类型的行为,以及如何进一步排除故障?上的应用程序结构的更多
只是有点信息:
- 鉴于没有加载图像使用
initWithContentsOfFile
装入NSMutableArray
。
这一切都发生在相同的UIView。这些对象被添加到视图中,被删除,然后添加新的(在这种情况下是一个自定义的UIScrollView)对象。我仍然不清楚我的原始问题 - 为什么只有在新对象添加到视图(通过self.view addSubview x)时,真实内存才会增加?这些对象被放置在viewDidLoad方法的数组中,并且实际内存在此时不会增加(它很低且不变)。 – GuybrushThreepwood 2013-04-27 17:00:01
@Ohnomycoco在这种情况下,我们可能需要查看一些源代码来诊断问题。但显然,当你进入下一页时,你正在添加一些东西。根据目前共享的内容进行诊断是不可能的。 – Rob 2013-04-27 17:11:41
@Onomycoco您也可以使用Allocations工具(如[此处](http://stackoverflow.com/a/14105056/1271826)所示)来确定分配中的跳转,突出显示图表的一部分,并显示你正是什么导致了内存的消耗。 – Rob 2013-04-27 18:41:47