IOS:关于生物和物体的记忆问题

时间:2013-09-24 10:16:30

标签: iphone ios objective-c memory-management uiscrollview

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

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

enter image description here

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

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

enter image description here

enter image description here

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

enter image description here

2 个答案:

答案 0 :(得分:1)

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

我的意思是你可以设置你的Scroll Views数组并添加尽可能多的[NSNull null]个对象作为要显示的图像数量。然后,在特定实例中,该数组中只有3个图像,滚动后删除不必要的图像或用[NSNull null]个对象替换它。

答案 1 :(得分:0)

分析内存很棘手。实际使用的最佳工具是活动监视器,它将告诉您实际使用的内存量,与分配不同,分配将告诉您超出您需要知道的内容。

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