在分配UIButton和UILabel时收到内存警告

时间:2012-10-30 15:52:00

标签: ios uibutton automatic-ref-counting didreceivememorywarning

情况如下: 我有一个水平滚动的UIScrollView(称为A)。对于此滚动视图,属性pagingEnabled设置为YES。在屏幕的右侧,我有一个UIButton,它附加到self.view,不会滚动滚动视图。

enter image description here

点击后,此按钮会在UIView内显示另一个UIScrollView(称为B),其内部会垂直滚动。此滚动视图包含UIButtonUILabel的列表。每个UIButton作为UIImage作为backgroundImage。我使用UIButton代替UIImageView,因为这样可以轻松管理图片上的触摸事件。 UILabel包含每张图片的说明。

enter image description here

问题: 对于A scroll view中的每个页面,我需要更改UIButton中包含的B scroll view,因为每个页面都有不同的图像列表。因此,在scrollView:didEndScrollingAnimation滚动视图委托方法中,我从视图中移除了旧的UIButton和旧的UILabel,并且还从包含它们的NSArray中删除了。 我创建了UIButtonUILabel的新列表,我添加到self.view并在数组中插入[array addObject:]

在可变数量的滚动后,应用会收到内存警告消息,并且会从系统中删除。

我使用ARC,所以几乎不可能理解旧对象是否被处理(并且在任何情况下都是非常困难的,因为它们是系统对象)。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我会在你的案件中做的,就像我推荐给别人一样:

  • 使用配置文件并分析堆之间的差异。这样,您就可以在每次滑动之间检查应用程序的内存占用量。

有关如何操作的基本教程,您可以查看this。我知道这有点模糊,你会想要一个客观的答案,但事实是,你认为现在的问题,可能与你的应用程序中的真正问题不一致。如果您在分析堆后需要进一步的帮助,只需编辑您的问题并告诉我们。

this是我使用的原始文章,来自Mr. bbum