0

好的,所以在我的应用程序的初始加载时,我从一个 sqlite 数据库中读取。我使用此代码打开它:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"golfScores.sqlite"];

if(sqlite3_open([path UTF8String], &database) == SQLITE_OK){

我一直相信这会从应用程序目录而不是应用程序包打开数据库。添加、删除或更新记录时,应用程序内一切正常。我可以关闭应用程序并重新打开它,数据就会按原样显示。问题是,如果我用终端查看数据库,什么都没有改变。这是完全不同的。所以它必须在捆绑包中使用并保存到数据库中,对吗?如何让应用程序更新应用程序目录中的数据库?

4

1 回答 1

4

您的代码对我来说看起来是正确的,听起来好像它工作得很好!您绝对没有访问您的应用程序包。捆绑包中的文件不应该由您的应用程序编辑,因为它会破坏代码签名。但是,可以使用 NSBundle 类来读取它们。

我猜想您使用终端查看的任何内容都与您的应用程序正在访问的数据库文件不同。

于 2012-10-08T18:43:00.597 回答