QLPreviewController 似乎根据本地文件的 URL 缓存文件内容。在我的应用程序中,文件内容可以远程更新,并会导致下载新内容。
如果我在 QLPreviewController 中查看文件,远程更新它,然后重新预览它,该文件不会显示为已更新。
该文件肯定在磁盘上更新,其他控件显示正确的更新文件。
我现在使用的解决方法是在预览文件时将文件移动到唯一的文件名(使用时间戳),这当然不会在 QLPreviewController 的缓存中。但是,这还有其他影响,例如,如果应用程序被杀死或崩溃(上帝保佑),我将不知道“在哪里”可以找到下载的文件。
我正在寻找侵入性较小的黑客,或使 QLPreviewController 刷新其缓存的解决方案。API 似乎没有暴露任何东西,所以如果它没有我上面介绍的那么严重,请不要害怕提交 hack(不包括将文件复制/移动到有保证的唯一 URL,我已经利用)。