在应用程序目录(缓存)中获取唯一的图像文件路径w.r.t SDWEBIMAGE中存储在服务器上的图像的唯一URL

时间:2014-10-07 10:29:06

标签: ios iphone filepath sdwebimage

我正在使用SDWEBIMAGE库在我的应用中ImageView显示图片。

我被卡在SDWEBIMAGE缓存中查找存储图像的唯一文件路径。我需要一个特定Image的文件路径,该文件路径是应用程序文档目录中缓存图像中的URL。

因此,对于每个URL,imagepath必须是唯一的。

我经历了这个This Discussion链接但没有运气。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

来自documentation

  

要查找缓存,请使用queryDiskCacheForKey:done:方法。如果   该方法返回nil,表示缓存当前没有   图片。因此,您负责生成和缓存它。该   缓存键是要缓存的映像的应用程序唯一标识符。   它通常是图像的绝对URL。

SDImageCache *imageCache = [[SDImageCache alloc] initWithNamespace:@"myNamespace"];
 [imageCache queryDiskCacheForKey:myCacheKey done:^(UIImage *image)
 {
     // image is not nil if image was found
 }];

<强>更新

您可以像这样获取图片的路径:

NSString *myImgKey;//this is the key for the image you want the path for
[[SDImageCache sharedImageCache] defaultCachePathForKey:myImgKey];

如果您不使用默认位置,可以使用:

- (NSString *)cachePathForKey:(NSString *)key inPath:(NSString *)path;

此函数返回某个键的路径,但您必须将其传递给缓存的根文件夹。

答案 1 :(得分:1)

SDwebImage始终会加密您的图片名称。但是如果要访问图像,可以使用URL作为从SDWebImage读取图像的键( - (UIImage *)imageFromDiskCacheForKey:(NSString *)key;)。请参阅SDWebImageCache。

https://github.com/rs/SDWebImage/blob/master/SDWebImage/SDImageCache.h

如果你想访问路径,你可以创建SDWebImageCache类别并使用私有方法

  • (NSString *)defaultCachePathForKey:(NSString *)key

请参阅 - How to get filesystem path to image cached with SDWebImage (iOS)