在AFNetworking中,是否可以将图片缓存在磁盘上,使其在多个会话中保留一周或一个月?我在项目中使用了SDWebImage和AFNetworking,但是几天前我发现AFNetworking具有与SDWebImage相同的功能,因此我删除了SDWebImage并编写了以下代码来存储图像:
对于ImageView:
获取下载的图像。
对于ImageView:
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];
但是我仍然无法将图像缓存更长时间,只能在会话期间缓存。(对我的英语表示抱歉)