0

我正在使用 AFNetworking 2.5 版。我在下面描述了我的问题。提前致谢。

我的问题:

调试时,我看到 AFNetworking 下载图像并将其存储到磁盘。重新启动后,图像缓存仍保留在磁盘中,但不会从 NSCache 返回。

请注意,应用程序也没有收到任何内存警告,也不会自动清除缓存。每次重新启动时,我都会从 finder 中检查文件并查看它们都保留下来,但 AFNetworking 无法从缓存中接收它,并再次下载它。

“UIImageView+AFNetworking.m”下面的行返回 nil:

return [self objectForKey:AFImageCacheKeyFromURLRequest(request)];

我的代码:

NSURL *imageURL = [NSURL URLWithString:facility.image.list.original];
NSMutableURLRequest *imageURLRequest = [NSMutableURLRequest requestWithURL:imageURL];
[imageURLRequest addValue:@"image/*" forHTTPHeaderField:@"Accept"];
[cell.image setImageWithURLRequest:imageURLRequest placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {
            if (request)
            {
                [UIView transitionWithView:cell.image
                                  duration:0.2f
                                   options:UIViewAnimationOptionTransitionCrossDissolve
                                animations:^{[cell.image setImage:image];}
                                completion:NULL];
            }
            else
            {
                [cell.image setImageWithURL:imageURL];
            }
        } failure:nil];
4

1 回答 1

1

请参考AFImageCache 说明

" AFImageCache: 一个只属于内存的图像缓存AFNetworking,属于 NSCache 的子类"

如果您需要将图像缓存在磁盘上,您可以使用其他库,例如SDWebImageCache

于 2015-02-27T18:13:38.787 回答