我正在使用AFNetworking从互联网上下载一些图像到我的应用程序.我正在使用此代码下载这些图片, AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:[NSURLRequest requestWi
AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:_linkString[indexPath.item]]]]; requestOperation.responseSerializer = [AFImageResponseSerializer serializer]; [requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 150, 150)]; _imageView.image = responseObject; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Image error: %@", error); }]; [requestOperation start];
我注意到所有响应映像都是从此方法自动缓存到磁盘的.我的应用程序中也有这个选项.所有缓存的图像大小约为150kb.但是当我下载大约2MB大小的图像时,这些图像不会自动缓存到磁盘.
为什么小尺寸图像被缓存&大尺寸图像没有缓存?我是否使用错误的方法在AFNetworking中缓存图像?
任何人都可以使用AFNetworking为我提供缓存2MB图像的解决方案….
谢谢
问题不在于AFNetworking,而在于NSURLCache.默认情况下,NSURLCache不会缓存大于10%的文件(不确定具体百分比是多少).但增加缓存大小将有助于:
[[NSURLCache sharedURLCache] setMemoryCapacity:(20*1024*1024)]; [[NSURLCache sharedURLCache] setDiskCapacity:(200*1024*1024)];