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

时间:2013-12-05 13:39:36

标签: ios iphone ipad nsdocumentdirectory nscache

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

  

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

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

  

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

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

  

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

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

编辑:

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

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

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

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

所以我认为最好的想法是将应用程序中一直需要的重要文件保存到文档目录中,并将其标记为不备份,like this

答案 2 :(得分:1)

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

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

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