1

UIImage在一个特定的动作中,我需要记住很多's。

我设法保存图像的最佳方法是将它们转换为NSData并存储在NSMutableArray. 稍后我将遍历数组并再次转换NSDataUIImage对象以重用每个图像(我真的将它们全部合并为一个单块)。

但是,如果数组中有 10 个或更多图像,我的应用程序就会崩溃。将它们保存到硬盘而不是NSMutableArray会为用户增加大量处理时间。

动态处理大量图像的最佳实践是什么?

4

1 回答 1

1

你会发现如果直接存储 UIImage 可以在崩溃前在数组中存储更多的图像。从 NSData 转换为 UIImage 并返回需要消耗内存。

但是,您的内存仍然有限。如果这些图像的大小可以改变,那么在崩溃之前您可以在数组中拥有的数量将是未知的。如果是这种情况,可能是时候开始考虑将数据缓存到tmp文件夹了。

无论如何,最好的做法是将对象的引用直接保存在数组中,而不是将它们转换为 NSData。存储直接引用还允许引用计数发挥其魔力,通常需要在内存中复制更少的数据,从而减少内存占用并提高性能。

于 2013-04-05T18:23:29.710 回答