FMDB databaseWithPath:不写入磁盘

时间:2013-03-24 06:02:39

标签: iphone database cocoa file fmdb

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

  1. 文件系统路径。该文件不必存在于磁盘上。如果它不存在,则会为您创建。
  2. 我使用以下代码获取文件系统路径:

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

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

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

    结果是一个有效的FMDatabase对象,该对象未按照公布的方式写入磁盘。我是否误解了文档中的解释?我该如何动态创建dbs并将其写入磁盘?

    谢谢!

2 个答案:

答案 0 :(得分:1)

刚发现在调用[db open];之前,db实际上并未在磁盘上生成。

答案 1 :(得分:0)

尝试使用NSDocumentDirectory。使用以下命令更改您的路径代码:

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