2017-04-03 193 views
1

我们目前的系统是这样工作的。 一个对象有一个时间戳来指示应用程序的图像已经更新。当图像上传到存储器时,这个时间戳会被更新。旧图像将被新图像替换。Firebase iOS存储图像

但是我们的iOS开发者(Frank)有一个问题,他使用SDWebImage在他的单元格中加载图像。但是当他在对象更改中使用相同的路径和图像时间戳时,SDWebImage不会重新加载图像。因为它使用URL缓存图像。

这怎么解决?

+0

你看过这个吗? http://stackoverflow.com/a/16277427/6203030我正在寻找一个不清除所有缓存的答案。或者这一个:http://stackoverflow.com/questions/8751782/how-to-use-sdwebimage-without-any-cache-for-one-instance 你能分享你正在努力完成的代码吗? –

回答

0

您应该删除缓存的图像。 SDImageCache使您能够管理SDWebImage的缓存数据,并且它具有可以移除缓存图像的属性。

当然,你可以全部缓存图像或只有一个图像与网址。 我在我的项目中的代码如下。

SDImageCache * cache = [SDImageCache sharedImageCache];

[cache removeImageForKey:“要删除的图像的缓存URL”fromDisk:YES withCompletion:nil];

它适用于我,它不会让你删除所有缓存的数据。 希望它有帮助

0

我有完全相同的问题。

如果您使用数据库来引用存储对象,那么以下内容可能适用于您。

虽然您的文件的名称在映像执行时不会更改,但单独的下载链接确实存在(可在Firebase控制台的元数据中找到)。使用标准的Firebase存储方法,而不是使用SDImageCache的唯一下载URL。每次图像更新时,此URL都会刷新,SDImageCache将其识别为新图像!

imageToSet.sd_setImage(with: URL(string: imageUrl), 
placeholderImage: "Profile-Placeholder")