在SQLite数据库中保存FMDatabase

时间:2014-01-19 12:49:19

标签: ios database sqlite fmdb

如何在项目中将FMDatabase数据库保存到SQLite数据库(.db)?

我有一个TableView,在那里我用FMDatabase显示我的Sqlite数据库(.db)。我使用executeUpdate更改了该数据库,但是我无法将此更改应用于项目中的原始sqlite数据库(.db)。

我很不清楚英语和原始教程对我来说很难。 我希望你能帮助我理解。

1 个答案:

答案 0 :(得分:0)

数据库FMDB保存为本身的SQLite数据库。您使用FMDB打开Documents文件夹中的SQLite数据库(您从bundle中复制或以编程方式创建)。你永远不会改变捆绑中的数据库(如果你根本就有一个)。

您通常会检查数据库中是否存在数据库,如果没有,请从数据库中复制数据库:

NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"Base" ofType:@"db"];
NSString *documentsFolder = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
NSString *documentsPath = [documentsFolder stringByAppendingPathComponent:@"Base.db"];
NSFileManager *fileManager = [NSFileManager defaultManager];

if (![fileManager fileExistsAtPath:documentsPath]) {
    NSError *error;
    BOOL success = [fileManager copyItemAtPath:bundlePath toPath:documentsPath error:&error];
    NSAssert(success, @"%s: copyItemAtPath error: %@", __FUNCTION__, error);
}

// now FMDB can use the database at `documentsPath`