在IOS中存储应用程序数据的正确位置

目前我正在将我的应用程序数据(Media)保存到CacheDirectory即

在/ var /移动/应用/ BEAFC76C-C450-4A3A-9765-A0385A9580F3 /库/缓存

事情进展顺利。 但最近我收到一个错误报告,表明应用程序数据已被删除。 当我搜索它时,我得到了这个Apple Doc 。 根据它,DocumentsDirectory应该是存储用户/应用程序数据的理想位置。

将用户数据放在/ Documents /中。 用户数据是您的应用无法重新创建的任何数据,例如用户文档和其他用户生成的内容。

并且不应使用缓存来存储应用程序无法复制的用户数据。

将数据缓存文件放在/ Library / Caches目录中。 您应该放在此目录中的文件示例包括(但不限于)数据库缓存文件和可下载内容,例如杂志,报纸和地图应用程序使用的内容。 您的应用程序应该能够优雅地处理系统删除缓存数据以释放磁盘空间的情况。

什么应该是存储它的理想场所。

编辑:

我有一个应用程序,允许用户在应用程序中存储video和照片。 为此,我使用了CacheDirectory。 但我收到错误报告,数据(video/照片)被删除。 我得出的结论是,数据正在被设备本身删除以提供空间。

其次,我还想提供iTunes共享function。 因此,只有特定文件必须存储在DocumentsDirectory中。 有些文件永远不会暴露,有些文件必须共享。 什么应该是存储文件的理想方式。

库/应用程序支持文件夹是您应该使用的文件夹。

此目录并不总是存在,因此您可能需要创建它。 您可以启用或禁用要使用itunes备份此数据的天气。

即使您启用文件共享,也无法访问此数据。 只有您放在Document目录中的数据才会与iTunes共享共享,因此您仍然可以保护您的数据并将其备份。 Apple的文档

DocumentsNSDocumentDirectory )用于您希望通过iTunes共享的文件。

Application SupportNSApplicationSupportDirectory )用于您希望向用户隐藏但仍可备份且永不被操作系统删除的文件。

从iOS 5开始,Apple表示在文档目录中保存所有类型的文件不再是一件好事 – 如果这样做,您的应用程序将被拒绝,因为此文件夹已备份到iTunes&iCloud,除非另有说明。

它说我们应该将文件保存到Caches或Tmp目录中 – 这些不会被备份,但这不是一件好事,因为如果发生低内存,来自这些目录的文件就会消失。

因此,我认为最好的做法是将应用程序中始终需要的重要文件保存到文档目录中,并标记它们不要备份, 就像这样 。