【发布时间】:2016-07-16 04:43:43
【问题描述】:
AFNetworking 是否可以在磁盘上缓存图像超过会话?例如一周或一个月。在我的项目中,我使用了 SDWebImage 和 AFNetworking,但前几天我发现 AFNetworking 与 SDWebImage 具有相同的功能>,所以移除了一个SDWebImage,并编写了这样的代码来将图像存储在磁盘上:
对于图像视图
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
[imageView setImageWithURLRequest:imageRequest placeholderImage:placeholderImage success:nil failure:nil];
下载图片以备日后使用
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
[[AFImageDownloader defaultInstance] downloadImageForURLRequest:imageRequest success:nil failure:nil];
获取下载的图片
NSURLRequest *imageRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:url]
cachePolicy:NSURLRequestReturnCacheDataElseLoad
timeoutInterval:60];
UIImage *image = [[AFImageDownloader defaultInstance].imageCache imageforRequest:imageRequest withAdditionalIdentifier:nil];
但所有这些仅在每个会话中有效,在我加载所有图像后,我关闭互联网并重新启动我的应用程序,结果 - 缓存中没有图像。
我也尝试在AppDelegate中添加这样的代码:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:2 * 1024 * 1024
diskCapacity:100 * 1024 * 1024
diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
但我仍然无法将图像缓存超过会话。 (对不起我的英语)
【问题讨论】:
标签: ios afnetworking image-caching afnetworking-3