0

从包含图像链接 (https) 的 HTML 字符串创建 NSAttributedString 时,下载的图像会以某种方式被缓存。我是怎么得出这个事实的?

  1. 安装软件。
  2. 打开应用程序。图像在那里。
  3. 关闭应用程序(终止)。进入飞行模式。
  4. 打开应用程序。图像仍然存在。
  5. 完全删除应用程序,然后重新安装。
  6. 在飞行模式下打开应用程序。没有图像。

缓存图像实际上是我想要的。但我想更深入地了解图像的缓存方式和位置。由于我的应用程序应该离线工作,我必须确保图像是否被缓存。我深入研究文档,找不到任何东西。有人可以启发我吗?谢谢你。

编辑澄清:

我没有直接使用 NSTextAttachment。我正在使用 UTF8 编码数据从字符串初始化 NSAttributedString。为什么我在谈论 NSTextAttachment 是我猜它会自动为 HTML 字符串中的“img”标签创建一个 NSTextAttachment。

4

2 回答 2

0

由于文档没有说明图像将被缓存,因此最好假设没有缓存。因此,针对您的情况,最好的解决方案是使用URLSession下载文件并将文件存储在磁盘上,这样当设备离线时,可以显示图像。

于 2018-01-14T00:20:40.327 回答
0

一些挖掘模拟器数据证明我的图像确实被缓存了。

/Users/<username>/Library/Developer/CoreSimulator/Devices/<simulator-id>/data/Containers/Data/Application/<app-id>/Library/Caches/<app-bunle-identifier>/Cache.dbfile 是一个保存缓存信息的 SQLite 文件。还有我的图像,以及它的链接和数据。

苹果没有记录这一点很奇怪,我仍然不知道它是如何/何时缓存的。

于 2018-01-14T00:51:47.803 回答