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];
但我仍然无法将图像缓存超过会话。(对不起我的英语不好)