何时删除NSTemporaryDirectory中的文件

And*_*kis 2 objective-c multitasking

我正在构建一个多任务应用程序,其中包括查看大型pdf文件的功能.为了避免每次用户想要查看文件时下载文件,我在NSTemporaryDirectory中下载文件并使用UIDocumentInteractionController提供"快速查看"和"在iBooks中打开".

我希望在用户退出应用程序时清除所有临时文件,以避免占用用户设备上的空间.由于我的应用程序是多任务处理而且我的applicationWillTerminate方法永远不会被调用,因此永远不会删除这些文件.什么时候最好清除NSTemporaryDirectory,我该怎么做?我错过了什么吗?

提前致谢

Dar*_*ust 5

你可以使用一个在iOS上运行良好的旧UNIX技巧(我知道,因为我使用它):

  • 保存文件.
  • 打开它们.
  • 记住文件描述符.
  • 删除文件(这是神奇的部分).

结果是,只要您不关闭文件,文件就会保持打开状态.但是他们的目录条目已经消失,即文件不再显示在列出的目录中.现在很酷的是,只要你关闭其中一个文件描述符,相应的文件就会自动从磁盘中完全删除.无论您是明确地调用close它们还是应用程序终止或崩溃都无关紧要,在所有这些情况下,操作系统都会删除这些文件,您无需担心它.

缺点是您需要更改代码,以便它可以与文件描述符一起使用,因为您无法再按名称访问文件.