我下载图片并在我的应用中使用它。我有超过100张图像,我不是一次全部使用它。我会用缓存。然后我加载我保存到缓存的所有图像。然后我将转到应用程序的其他部分,我将使用一些图像。
我真的不明白ios缓存是如何工作的,我有一个问题:在加载所有图像并将其保存到缓存后,我应该如何使用这些图像,我的意思是,我需要从缓存加载它们或使用图像实例我有什么保存它缓存?
对于AFNetworking 2.0,哪种缓存策略更有用?
答案 0 :(得分:0)
AFNetworking具有图像内存缓存功能。如果你有100张图片可能适合你,可能不适合。
您还应该在这里阅读NSURLCache - http://nshipster.com/nsurlcache/。
如果你使用NSURLCache,你不必考虑缓存 - 当你开始下载已经缓存的东西时,系统只会给你下载的文件。
更新: 下载数据的时间到期由服务器设置作为响应。但您可以通过NSURLConnectionDelegate方法编辑或忽略它。例如:
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)[cachedResponse response];
// Look up the cache policy used in our request
if([connection currentRequest].cachePolicy == NSURLRequestUseProtocolCachePolicy) {
NSDictionary *headers = [httpResponse allHeaderFields];
NSString *cacheControl = [headers valueForKey:@"Cache-Control"];
NSString *expires = [headers valueForKey:@"Expires"];
if((cacheControl == nil) && (expires == nil)) {
NSLog(@"server does not provide expiration information and we are using NSURLRequestUseProtocolCachePolicy");
return nil; // don't cache this
}
}
return cachedResponse;
}