博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FMDB中 databaseWithPath 的使用问题
阅读量:5036 次
发布时间:2019-06-12

本文共 1641 字,大约阅读时间需要 5 分钟。

 阅读fmdb的源码文件()会发现下面一段注释,里面提到的创建数据库的方法也在很多博客中被引用,但是跑代码的时候发现,文件并不会像文档中所说的那样自动去创建(哪怕是在沙盒目录下的Documents目录下也不能创建成功)

/** Create a `FMDatabase` object.

 

 An `FMDatabase` is created with a path to a SQLite database file.  This path can be one of these three:

 

 1. A file system path.  The file does not have to exist on disk.  If it does not exist, it is created for you.

 2. An empty string (`@""`).  An empty database is created at a temporary location.  This database is deleted with the `FMDatabase` connection is closed.

 3. `nil`.  An in-memory database is created.  This database will be destroyed with the `FMDatabase` connection is closed.

 

 For example, to create/open a database in your Mac OS X `tmp` folder:

 

    FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/tmp.db"];

 

 Or, in iOS, you might open a database in the app's `Documents` directory:

 

    NSString *docsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

    NSString *dbPath   = [docsPath stringByAppendingPathComponent:@"test.db"];

    FMDatabase *db     = [FMDatabase databaseWithPath:dbPath];

 

 (For more information on temporary and in-memory databases, read the sqlite documentation on the subject: [](

 

 @param inPath Path of database file

 

 @return `FMDatabase` object if successful; `nil` if failure.

 

 */

  

问题出在哪了呢?一般的思路是:如果文件创建不成功,可能是路径不存在,需要手动创建路径;如果路径存在,那么就可能是创建方法出了问题。

 

第一种情况添加下面的代码

 

if (![[NSFileManager defaultManager] fileExistsAtPath:dbPath])    {        [[NSFileManager defaultManager] createFileAtPath:dbPath contents:nil attributes:nil];    }

  

 第二种情况

找了fmdb的所有代码,没有创建文件或判空路径的操作,于是猜想,也许是注释文档写好后,功能没加(个人瞎想,不必在意)。

 

转载于:https://www.cnblogs.com/PaulpauL/p/6124683.html

你可能感兴趣的文章
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
基于LBS功能,Geohash在PHP中运用实例
查看>>
NoClassDefFoundError: org.ksoap2.transport.HttpTransportSE
查看>>
关于MVC与MVP的理解
查看>>
PHP preg_match正则表达式
查看>>
Windows2008R2安装Exchange 2010前必须要做的准备工作
查看>>
了解栈(顺序栈)的实现方法
查看>>
bzoj 3732 Network
查看>>
对象数组
查看>>
Hadoop创建/删除文件夹出错
查看>>
差速移动机器人之建模与里程计
查看>>
Django学习笔记
查看>>
03-THREE.JS GUI使用
查看>>
Python os.path.join 双斜杠的解决方法
查看>>
高并发下线程安全的单例模式
查看>>
Windows下修改Git bash的HOME路径(转)
查看>>