我正在构建一个多任务应用程序,其中包含查看大型pdf文件的功能。为了避免每次用户想要查看文件时下载文件,我都会在NSTemporaryDirectory中下载该文件,并使用UIDocumentInteractionController提供“快速查看”和“在iBooks中打开”。
我希望在用户退出应用程序时清除所有临时文件,以避免占用用户设备上的空间。由于我的应用程序是多任务处理而且我的applicationWillTerminate方法永远不会被调用,因此永远不会删除这些文件。什么时候最好清除NSTemporaryDirectory,我该怎么做?我错过了什么吗?
提前致谢
答案 0 :(得分:5)
你可以使用一个在iOS上运行良好的旧UNIX技巧(我知道,因为我使用它):
效果是文件保持打开状态,只要不关闭它们即可。但是他们的目录条目已经消失,即文件不再显示在列出的目录中。现在很酷的是,只要你关闭其中一个文件描述符,相应的文件就会自动从磁盘中完全删除。您是否明确地在其上调用close
或者您的应用是否终止或崩溃无关紧要,在所有这些情况下,操作系统都会删除这些文件,您无需担心它。
缺点是您需要更改代码,以便它可以与文件描述符一起使用,因为您无法再按名称访问文件。
答案 1 :(得分:0)
applicationWillResignActive 在你的Appdelegate是最好的选择。