【发布时间】:2011-12-15 16:36:45
【问题描述】:
我正在开发一个具有新闻提要的 iPhone 应用程序。此新闻提要是从我编写的 JSON Web 服务中提取的(目前在我笔记本电脑上的 MAMP 上)。
无论如何,我使用 MySQL 数据库来存储对我的图像的引用,这些图像存储在 apache 文件系统中。
我以一种非常特殊的方式存储它们,这就是我存储它们的方式:
完整图片:ng_(postid)_(seqid)
点赞:tng_(postid)_(seqid)
PostID 是分配给每个新闻帖子的唯一 ID。
SeqID 是一个 ID,仅对于该新闻帖子的照片是唯一的。
我可能没有说得很清楚...示例:
第一篇文章中的图片文件可能是这样的
ng_1_1.jpg
ng_1_2.png
ng_1_3.jpg
第二篇文章的图片文件可能如下所示
ng_2_1.jpg
ng_2_2.png
ng_2_3.gif
到目前为止,这一直很好,但我想看看如果我删除了一个帖子,然后在原来的位置重新创建一个会发生什么?
假设我们有一个名为“旧帖子”的帖子,它有 2 张图片,postid 为 7。
它的图像可能如下所示:
ng_7_1.jpg
ng_7_2.jpg
假设我们删除了该帖子,然后创建了一个新帖子,其中包含三张图片,称为“新帖子”。
它的图像将如下所示:
ng_7_1.jpg
ng_7_2.jpg
ng_7_3.jpg
现在,问题来了...如果设备查看了已删除的旧帖子,然后查看此新帖子,他们将看到前两张图片来自 OLD POST。不是新的。
为什么? SDWebImage 认为是因为 URL 相同,因此决定从磁盘中提取缓存的图像。它甚至不显示缓存的版本,然后检查图像是否已更新。
所以,我想出了两种可能的解决方案:
- 在显示缓存版本后,不知何故让 SDWebImage 检查在线图像
- 在我的 JSON 中传递一个键,告诉我的应用擦除 SDWebImage 的缓存(必要时)
那么,我的问题是,您将如何删除 SDWebImage 的缓存,或者在显示缓存版本后让它检查服务器?
【问题讨论】:
标签: iphone json image caching sdwebimage