QLPreviewController似乎根据本地文件的URL缓存文件内容.在我的应用程序中,文件内容可以远程更新,并将导致下载新内容.
如果我在QLPreviewController中查看文件,远程更新它,然后重新预览它,该文件不会显示为更新.
该文件肯定在磁盘上更新,其他控件显示正确的更新文件.
我现在使用的解决方法是基本上将文件预览为一个唯一的文件名(使用时间戳),这当然不会在QLPreviewController的缓存中.然而,这有其他影响,例如,如果应用程序被杀或崩溃(上帝禁止),我不知道“在哪里”找到下载的文件.
我正在寻找更少侵入性的黑客攻击,或者让QLPreviewController刷新其缓存的解决方案. API似乎没有暴露任何东西,所以如果它不如我上面提到的那么粗糙,不要害怕提交黑客(不包括复制/移动文件到保证的唯一URL,我已经利用).
最佳答案 我自己也遇到过这个问题.每次重新加载与当前查看项目同名的项目时,我都会通过重新创建QLPreviewController来解决它.创建新的QLPreviewController会清除缓存.
我知道这是一个老问题,但有人可能会遇到同样的问题,并且发现这个答案很有帮助.