【问题标题】:FMDB databaseWithPath: not writing to diskFMDB databaseWithPath:不写入磁盘
【发布时间】:2013-03-24 06:02:39
【问题描述】:

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

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

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

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

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

FMDatabase *aDB = nil;

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

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

谢谢!

【问题讨论】:

    标签: iphone database cocoa file fmdb


    【解决方案1】:

    刚刚发现在调用[db open]; 之前实际上并未在磁盘上创建数据库。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 已经尝试过了。仍然没有运气。我在内存中得到了 db 对象,但我无法将它写入磁盘。
      猜你喜欢
      • 1970-01-01
      • 2013-01-02
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多