0

fmdb 文档说,如果您将文件系统路径传递给 databaseWithPath: 它将为您创建一个文件:

  1. 文件系统路径。该文件不必存在于磁盘上。如果它不存在,它是为您创建的。

我正在使用以下代码获取文件系统路径:

[[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"] stringByAppendingPathComponent:@"file.db"];

并尝试像这样设置我的数据库:

FMDatabase *aDB = nil;

if (aLanguageDBPath) {
        aDB = [FMDatabase databaseWithPath:aLanguageDBPath];
}

结果是一个有效的 FMDatabase 对象,它没有像宣传的那样被写入磁盘。我是否误解了文档中的解释?我应该如何动态创建数据库并将其写入磁盘?

谢谢!

4

2 回答 2

1

刚刚发现数据库实际上并没有在磁盘上创建,直到[db open];被调用。

于 2013-03-24T20:02:36.547 回答
0

尝试使用 NSDocumentDirectory。用这个改变你的路径代码:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                     NSUserDomainMask,
                                                     YES);
NSString dbPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"file.db"];
于 2013-03-24T13:11:39.293 回答