QLPreviewController 似乎根据本地文件的 URL 缓存文件内容。在我的应用程序中,文件内容可以远程更新,并会导致下载新内容。
如果我在 QLPreviewController 中查看文件,远程更新它,然后重新预览它,该文件不会显示为已更新。
该文件肯定会在磁盘上更新,其他控件显示正确的更新文件。
我现在使用的解决方法是在预览文件时将文件移动到唯一的文件名(使用时间戳),这当然不会在 QLPreviewController 的缓存中。但是,这还有其他影响,例如,如果应用程序被杀死或崩溃(上帝保佑),我将不知道“在哪里”可以找到下载的文件。
我正在寻找侵入性较小的黑客攻击,或使 QLPreviewController 刷新其缓存的解决方案。这些 API 似乎没有公开任何内容,所以如果它比我上面介绍的更粗略,请不要害怕提交 hack(不包括将文件复制/移动到有保证的唯一 URL,我已经这样做了)利用)。
最佳答案
刚刚自己遇到了这个问题。每次我重新加载与当前查看的项目同名的项目时,我都通过重新创建 QLPreviewController 来解决它。创建一个新的 QLPreviewController 会清除缓存。
我知道这是一个老问题,但有人可能有同样的问题,并发现这个答案很有帮助。
关于ios - 使 QLPreviewController "cache"无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13649555/