CoreData和FMDB你用哪个?

 

概括: 

        我们先说说这两个东西,CoreData 和 FMDB,其实就我自己而言觉得这两个都不错,刚开始是接触FMDB的,CoreData是工作后自己看的。苹果推荐开发者去使用CoreData,但 FMDB 在 git 上的那上万颗星星也说明了开发者对它的喜爱。在开发中你要是只是使用一张表去存储一点简单的东西,使用FMDB也方便,可是一旦表与表之间产生属性关联的话,用FMDB就比较的麻烦了。但用 CoreData 就比较的容易。

       再说说今天我们想说的,也是我看其他人的博客学到的,给大家分享出来。关联数据库和视图,简单的想一下这么一个场景。在一个tableView里面,tableView的数据源是表里面数据的条数,你通过表里面数据的条数去控制tableView的显示!在CoreData中 有一个控制器 NSFetchedResultsController专门为了关联数据库和视图而生的,这个Demo是写好了的,需要的留言告诉我我发给你。

 

CoreData的使用

 

 

 

         下面是我学习的链接,也给大家:

          iOS中CoreData数据管理系列一:初识CoreData

          iOS中CoreData数据管理系列二:CoreData框架中三个重要的类

          iOS中CoreData数据管理系列三:添加与查询数据 

          iOS中CoreData数据管理系列四:进行数据与页面的绑定

          iOS 数据持久化 -- Core Data

 

注意点和总结的地方:

先把里面会用到的类描述一下,知道它们是用来做什么,对应的都是那些东西。

 

/**
 *   先把CoreData里面会用到的类总结一下:
     NSManagedObjectModel  数据模型管理类对应我们的.xcdatamodeld 文件
     NSPersistentStoreCoordinator  相当于数据库与数据模型之间桥接器,通过它将数据模型存入到数据库
     NSManagedObjectContext  核心的数据库管理类 开发者通过操作它来执行对数据库的操作
     NSEntityDescription  实体描述,直接点其实就是库里面的表
     NSFetchRequest  查询请求, 查 删 改 你都的简历请求,找到你要修改的那一条数据
     NSPredicate  请求的条件,方法 [NSPredicate predicateWithFormat:@"stuNum == 20"] 意思是建立一条 stuNum = 20 的查询条件
 */

 

其次就是学习使用CoreData的时候可能会有疑惑的地方

 

NSURL * modelurl = [[NSBundle mainBundle]URLForResource:@"CoreDataTest" withExtension:@"momd"];
 //  获取创建的caredata 文件
NSManagedObjectModel * mom = [[NSManagedObjectModel alloc]initWithContentsOfURL:modelurl];

 

        上面是创建  NSManagedObjectModel 类的代码,注意第一句的 @“CoreDataTest” 是你 CoreData文件的名字,后面的 @“momd”, 是你的.xcdatamodel文件,用数据模型编辑器编辑编译后为.momd或.mom文件,所以就写@“momd”,可能会有人疑惑那是什么吧,顺便也说一下。

 

实现上面提到的:

 

 

就不大段大段的粘贴代码上去了,封装到了不同的控制器写的,粘贴复制就不太好了,你要觉得有需要可以留留言给我,我发给你!

FMDB:

        我自己用着FMDB感觉一切还好,除了每次一懵逼,找找SQLite语句。

        它的使用,网上真的是一大把,我就不再重复啰嗦了。把FMDB官方的解释中文版链接给大家,有时间还是看看吧,毕竟不是每个人都知道官方解释说了什么。说不定就有遗落了的知识。

       FMDB 使用方法

        有一点你知道吗?后面是一条创建 bulktest1 表的SQLite语句@"create table bulktest1 (id integer primary key autoincrement, x text);"后面的属性肯定不是我们描述的重点,前面的 id integer primary key autoincrement 知道是做什么的吗?如果你也不太清楚地,知识点链接在下面,看看至少知道这条语句说的是什么意思

  Sqlite中INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用

       上面说了这些,还是那句两个都不错,所以两个都学学,挺好!需要上面Demo就留言Q我,我发给你!

posted @ 2016-07-28 11:30  zxRisingSun  阅读(4750)  评论(1编辑  收藏  举报