当我使用NSURLRequestReturnCacheDataElseLoad策略启动一个请求时,我希望从NSURLCache获得结果,不管它有多老。但是,系统总是尝试访问请求所指向的服务器,如果服务器不响应,系统将返回错误。
对于该请求,我使用AFNetworking的UIImageView类别。
NSURLRequest* request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:60.0];
__weak __typeof(self) weakSelf = self;
NSLog(@"[%@] %@", request.URL, [[NSURLCache sharedURLCache] cachedResponseForRequest:request]); // this returns an instance of NSCachedURLResponse!
[self setImageWithURLRequest:request placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
__typeof(weakSelf) self = weakSelf;
self.image = image;
} failure:NULL];即使直接询问NSURLCache会返回一个有效的NSCachedURLResponse,这也不会设置图像。
该应用程序仅在iOS6上运行,所以据我所知,磁盘缓存应该没有问题?!
如有任何帮助,我们不胜感激!谢谢!
发布于 2013-05-14 19:40:40
这是一个已知的问题。有关解决方法,请参阅AFNetworking github page上的此讨论。
https://stackoverflow.com/questions/16541991
复制相似问题