我是初学者。我想在TableView上通过网址显示图片,所以我使用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不起作用?
答案 0 :(得分:0)
我没有iOS经验,但我认为缓存的图像是存储在Web客户端缓存中的图像,因此它可以更快地加载该资源,除非该资源已被修改且缓存版本因为它是无效的放入缓存。
我认为本地图像是存储在设备本身上的图像。显然这将比下载更快,因为iDevices上的存储由NAND闪存芯片组成,远远超过国内互联网连接。