2013-03-24 109 views
0

的FMDB文档说,如果你传递一个文件系统路径databaseWithPath:它会创建一个文件给你:FMDB databaseWithPath:不写入磁盘

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

我得到这个代码我的文件系统路径:

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

,并试图建立我的分贝,像这样:

FMDatabase *aDB = nil; 

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

的结果是一个有效FMDatabase对象ISN” t被广告写入磁盘。我是否误解了文档中的解释?我应该如何创建dbs并将其写入磁盘?

谢谢!

回答

1

刚刚发现该数据库实际上并不在磁盘上做,直到[db open];被调用。

0

尝试使用NSDocumentDirectory。这种变化你的路径代码:

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

已经尝试过。仍然没有运气。我在内存中获得了db对象,但我无法将其写入磁盘。 – Westley 2013-03-24 15:07:38