Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何知道图像是来自缓存还是来自SDWebImage中的表单url?_Iphone_Ios_Sdwebimage - Fatal编程技术网

Iphone 如何知道图像是来自缓存还是来自SDWebImage中的表单url?

Iphone 如何知道图像是来自缓存还是来自SDWebImage中的表单url?,iphone,ios,sdwebimage,Iphone,Ios,Sdwebimage,我正在使用SDWebImage加载图像列表,这非常好,但下次加载图像时,如果url相同,则从缓存加载图像。但我需要知道它来自缓存或网络。任何帮助都将不胜感激。使用您的url SDWebImageManager *manager = [SDWebImageManager sharedManager]; UIImage *cachedImage = [manager imageWithURL:url]; if (cachedImage) { [button setImage:cachedI

我正在使用
SDWebImage
加载图像列表,这非常好,但下次加载图像时,如果url相同,则从缓存加载图像。但我需要知道它来自缓存或网络。任何帮助都将不胜感激。

使用您的url

SDWebImageManager *manager = [SDWebImageManager sharedManager];
UIImage *cachedImage = [manager imageWithURL:url];

if (cachedImage) 
{
   [button setImage:cachedImage];
   //image is cashed
}
else 
{
   [manager downloadWithURL:url delegate:self];
}
然后实现委托功能

- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage*)image {
   [button setImage:image];
   // new image
}

选中SDWebImageManager,它有两个版本的函数用于检查URL是否已缓存:

- (BOOL)diskImageExistsForURL:(NSURL *)url;

还有一个版本带有一个在检查后执行的块。希望这有帮助

您可以检查缓存,查看相关图像是否已按如下方式下载:

NSString *key = [[SDWebImageManager sharedManager] cacheKeyForURL:URL];
UIImage *image = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:key];