0

我是初学者。我想在TableView上通过urls显示图片,所以我使用AFNetworking+SDURLCache,如下图

// init URLCache
SDURLCache *URLCache = [[SDURLCache alloc] initWithMemoryCapacity:1024*1024*2 diskCapacity:1024*1024*20 diskPath:[SDURLCache defaultCachePath]];
[URLCache setIgnoreMemoryOnlyStoragePolicy:YES];
[SDURLCache setSharedURLCache:URLCache];

==================================================== ======

// set cell    
[cell.imageView setImageWithURL:[NSURL URLWithString:IMAGE_URL] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
[[SDURLCache sharedURLCache] cachedResponseForRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:IMAGE_URL]]];

在这里,我在所有不同的单元格上使用图像。一切正常!当我第一次运行我的项目时,在单元格上显示图像需要很长时间,因为我的网络图像非常大。当我第二次运行我的项目时,我发现 TableView 会立即一张一张地加载图像?为什么?为什么不立即加载所有图像。我将缓存的图像替换为本地图像,TableView 一次加载图像。“缓存图像”和“本地”图像有什么区别?SDURLCache 不起作用?

4

1 回答 1

0

我没有 iOS 经验,但我认为缓存的图像是存储在 Web 客户端缓存中的图像,以便它可以更快地加载该资源,除非该资源已被修改并且缓存版本在放入缓存。

我认为,本地图像是存储在设备本身上的图像。显然,这将比下载它更快,因为 iDevices 上的存储由 NAND 闪存芯片等组成,远远超过国内互联网连接。

于 2012-11-04T10:21:17.687 回答