sqlite3数据库文件的正确位置是什么?

时间:2010-05-09 14:30:23

标签: iphone xcode sqlite

我正在使用sqlite3数据库来存储应用的数据。我没有在程序中构建数据库,而是在我的项目中引入了一个现有的db文件:'abc.sqlite',并将其放在我的'Resources'文件夹下。 所以,我认为这个db文件应该在'bundle'中,所以在我的init函数中,我使用了以下语句来读取它:

NSString *path = [[NSBundle mainBundle] pathForResource:@"abc" ofType:"sqlite"];
if(sqlite3_open([path UTF8String], &database) != SQLITE_OK)
...

可以打开此数据库并从中检索数据。 但有人告诉我,最好将此db文件复制到用户文件夹中:例如'Document'。所以,我的问题是:是否可以直接从主包中使用此数据库或将其复制到用户文件夹然后使用该副本。哪个更好?

非常感谢!

2 个答案:

答案 0 :(得分:4)

如果您只需要只读访问权限,就应该从捆绑包中使用它。如果需要写入文件,则需要将其移动到可写文档目录的位置。

另外,正如Sixten Otto所说,Application Support目录比较新的SDK中的Documents目录更好。

答案 1 :(得分:1)

鉴于使用iPad上的文件管理功能的用户可能会看到Documents文件夹的内容,newer versions of the iPhone OS中,我可以建议Application Support folder吗?