我应该在哪里存储我的iPhone应用程序的SQLite数据库?

Lka*_*abo 18 database sqlite iphone ios

我在市场上有几个iOS应用程序,在所有这些应用程序中,我有一个连接到应用程序的小型SQLite数据库文件,为用户提供我的数据.安装后,用户可以通过更改某些选项来自定义此DB.

到目前为止,所有这些应用程序都存储了数据库NSDocumentsDirectory.提交我的上次更新后,它被拒绝将数据存储在错误的位置.对于被拒绝的应用,我将存储位置更改为NSCachesDirectory.我现在担心缓存将被清除并删除用户自定义.该应用程序仍然可以运行,数据库将被重新创建,但所有更改的表都将被重置,从而扰乱用户.

这种类型的数据库文件应该存储在何处?我把它放在Docs目录中是对的吗?根据Apple的说法,Docs目录是针对"关键数据",它是用户生成的数据或正确运行应用程序所需的数据.我觉得它属于那个类别,坚持我的用户设置是正确的操作,但谁想等待上诉?

bne*_*ely 32

Apple的iOS文件系统编程指南将(application_home)/Library路径描述为"为要备份但未向用户公开的文件创建自定义子目录"的位置.该(application_home)/Documents路径被描述为"该目录的内容可以通过文件共享提供给用户".

您的数据库听起来不像文档,它们听起来像用户不应该知道的私有缓存.我建议你创建一个目录,如在(application_home)/Library/Database那里保存文件.你提到的缓存路径听起来不是我的最佳选择.

在提交另一个应用程序之前,您应该查看iOS的整个文件系统编程指南.