NSCache有数百张图片

时间:2014-02-14 10:43:25

标签: ios collectionview nscache

我有一个collectionView,一次显示9张图像(200x300px)。但总数可以达到数百个。

目前,如果Image在缓存中,我会检入cellForItem。如果没有,我将从文件系统加载它并将其放入缓存中。

问题:我第一次滚动集合时会丢帧,因为它仍在从文件系统加载图像。 经过一次初步滚动,它的黄油很光滑。 (那是5s)

我想知道将所有(或第一个x)图像预加载到缓存中是否是一个好习惯?

我没有看到5s的大问题,但我担心它会破坏旧的硬件。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

尝试在后台执行磁盘加载机制。您可以设置一个NSOperationQueue填充加载操作的队列。

将NSCache与预加载机制一起使用并没有多大意义,因为即使您预先加载所有图像,系统也可以并且如果认为合适,将驱逐缓存。在这种情况下,你在预加载方面所做的工作无济于事。

答案 1 :(得分:2)

你看过SDWebImage了吗? 它已包含an asynchronous memory + disk image caching with automatic cache expiration handling

而且,我通常会预加载所有图像以避免闪烁

相关问题