在applicationWillTerminate中删除20000个文件

时间:2013-11-15 23:41:44

标签: ios cocoa-touch core-data appdelegate

在我的iPhone应用程序中,我从服务器下载文件并将其存储在本地(用户的文档目录)。随后在数据库中更新下载的每个文件的路径。

如果用户尝试删除文件,首先使用removeItemAtPath :( NSFileManager)从本地路径删除该文件,然后从数据库中删除相应的记录。

现在我有一个要求,根据哪个用户可以打开UISwitch来删除app退出的所有数据。

现在我的问题是 -

  

假设用户下载了20000个文件,比如小图片,并且用户已经开启   在交换机上删除app退出的所有数据。处理好吗?   applicationWillTerminate中的这个任务?什么是最好的方法   完成这种情况?

请建议。

2 个答案:

答案 0 :(得分:2)

applicationWillTerminate只有在您的应用程序变为后台时才会被调用(按设备的“主页”按钮的唯一选项)并且“应用程序无法在后台运行”键在您的应用程序的info.plist文件中设置为“是”。否则就不会被召唤。

如果您计划部署具有类似功能的应用,则可以使用applicationWillTerminate删除这么多文件。但是,我永远不会推荐你。相反,我的建议是尽快删除文件,如果可能的话。

您必须考虑的另一件事是不要在Document目录中保存这么多文件,不管它们是多么小。文档目录由iTunes和iCloud备份,如果您在那里存储了这么多文件,您可能会违反Apple的Data Storage Guideline,拒绝从App Store中删除您的应用程序。将临时文件存储在应用程序的“tmp”目录中并在不再需要时删除它们总是一个好主意。

答案 1 :(得分:2)

不要单独删除文件,删除并重新创建文件夹。

您的数据库可以通过版本标记进行不同的处理,以便您可以在下次运行时批量删除项目。