FMDB databaseWithPath:不写入磁盘
Posted
技术标签:
【中文标题】FMDB databaseWithPath:不写入磁盘【英文标题】:FMDB databaseWithPath: not writing to disk 【发布时间】:2013-03-24 06:02:39 【问题描述】:fmdb 文档说,如果您将文件系统路径传递给 databaseWithPath: 它将为您创建一个文件:
-
文件系统路径。该文件不必存在于磁盘上。如果它不存在,则会为您创建。
我正在使用此代码获取我的文件系统路径:
[[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop"] stringByAppendingPathComponent:@"file.db"];
并尝试像这样设置我的数据库:
FMDatabase *aDB = nil;
if (aLanguageDBPath)
aDB = [FMDatabase databaseWithPath:aLanguageDBPath];
结果是一个有效的 FMDatabase 对象,它没有像宣传的那样被写入磁盘。我是否误解了文档中的解释?我应该如何动态创建数据库并将其写入磁盘?
谢谢!
【问题讨论】:
【参考方案1】:刚刚发现在调用[db open];
之前实际上并未在磁盘上创建数据库。
【讨论】:
【参考方案2】:尝试使用 NSDocumentDirectory。用这个改变你的路径代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString dbPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"file.db"];
【讨论】:
已经尝试过了。仍然没有运气。我在内存中得到了 db 对象,但我无法将它写入磁盘。以上是关于FMDB databaseWithPath:不写入磁盘的主要内容,如果未能解决你的问题,请参考以下文章