0

我有一个使用UICollectionView. 从图库中选择多个图像并按“完成”后。选定的图像将显示在UIScrollView(翻页)中,这些是全屏图像,可以向上/向下滚动以查看其他图像。

1)在启动应用程序时,是否可以有这么多的活动对象和堆分配。

在此处输入图像描述

2)当我选择并滚动浏览UIScrollView分配内存的图像时,图像将添加到内存中而不是释放。它会使应用程序崩溃。

这是我开始向上/向下滚动图像时的屏幕。它还会增加其他进程的内存消耗。

在此处输入图像描述

在此处输入图像描述

这是在 iPhone5 上进行的测试,使用活动监视器 VM 和实际内存上升。

在此处输入图像描述

4

2 回答 2

1

您为什么不尝试一次加载图像 3,而不是一次加载整组图像。

我的意思是您可以设置滚动视图数组并向其中添加与[NSNull null]要显示的图像数量一样多的对象。然后,在特定情况下,该数组中只有 3 个图像,滚动后删除不必要的图像或将其替换为[NSNull null]对象。

于 2013-09-24T11:05:31.697 回答
0

分析内存很棘手。实际使用的最佳工具是活动监视器,它会告诉您实际使用了多少实时内存,不像分配会告诉您比您需要知道的更多的信息。

此外,最大内存量取决于每个设备。如果您真的想知道您是否使用了大量内存,只需在设备上进行测试即可。你通常有很大的灵活性,内部 UIImage 类为你做了很多花哨的缓存和清除缓存。

于 2013-09-24T10:21:52.697 回答