sqlite数据库在每次编译和运行时重置

时间:2011-05-08 08:57:58

标签: sqlite ios-simulator

我已经构建了一个基本的数据库应用程序,用户可以在其中将记录插入到表中,应用程序将它们显示在TableView上。

一切都按照预期的方式运作。例如,即使我们从应用程序切换器中删除应用程序并从跳板重新启动它,新记录也会显示。

但每次我使用Xcode构建和运行时,数据库都会转到默认记录!新记录不存在。

这是正常的吗?...但如果我想测试我的应用程序的新记录怎么办?任何修复?

BTW,JFYI,下面是我用来制作可编辑数据库的代码。

-(NSString *)createEditableDatabase{
// Check if DB already exists
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *writableDB = [documentsDir stringByAppendingPathComponent:@"Database.db"];

success = [fileManager fileExistsAtPath:writableDB];

//The editable DB already exists
if (success) {
    return writableDB;
}


//The editable DB does not exist
//Copy the default DB into App's Doc Dir.

NSString *defaultPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Database.db"];

success = [fileManager copyItemAtPath:defaultPath toPath:writableDB error:&error];

if (!success) {
    NSAssert1(0, @"Failed to create writable DB file: '%@'", [error localizedDescription]);
}
return writableDB;

}

1 个答案:

答案 0 :(得分:0)

在深入挖掘的同时,我注意到当我插入记录时,finder中的数据库修改日期没有更新。所以,我发现我仍然使用旧路径来执行数据库操作(而不是文档操作)。 :)现在一切正常。无论如何,谢谢尼克