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数据管理系列四:进行数据与页面的绑定
注意点和总结的地方:
先把里面会用到的类描述一下,知道它们是用来做什么,对应的都是那些东西。
/**
* 先把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官方的解释中文版链接给大家,有时间还是看看吧,毕竟不是每个人都知道官方解释说了什么。说不定就有遗落了的知识。
有一点你知道吗?后面是一条创建 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我,我发给你!
CoreData和FMDB你用哪个?的更多相关文章
- coreData,sqlite3,fmdb对比
core data core data 基于model-view-controller(mvc)模式下,为创建分解的cocoa应用程序提供了一个灵活和强大的数据模型框架. core data可 ...
- 从FMDB到WCDB、微信团队怎么说?
WCDB背景 自己初次见到WCDB是微信开发团队公众号在今年五月份推送的一篇文章中(开发者团队的微信号上面图片中有,值得大家关注一下),那时候就说在筹备着WCDB的开源,觉得很是新奇,在两个多月前WC ...
- 对FMDB的封装JRDB
在自己开发中,每次用到数据库都会纠结是使用CoreData还是FMDB.CoreData虽然Api简单,但是调用栈非常复杂,要初始化一个Context需要至少20行代码.显然,对于这种这么恶心的情况, ...
- Sqlite/ FMDB
Sqlite 1. Sqlite数据库 > 数据库? 按数据结构来组织,存储和管理数据的仓库. > 关系型数据库:使用二维表及其之间的联系组织成一个数据组织. 关系:可以理解为一张二维表, ...
- CoreData介绍
http://blog.csdn.net/zh952016281/article/details/52105683 写在前面 在CoreData中有一些常用的类,称呼可能各不相同.所以这里先约定一些关 ...
- 认识CoreData—初识CoreData
http://www.cocoachina.com/ios/20160729/17245.html 这段时间公司一直比较忙,和组里小伙伴一起把公司项目按照之前逻辑重写了一下.由于项目比较大,还要兼顾之 ...
- App Today Extension开发注意事项
从iOS 8起,就有了App Extension.Extension的种类至今也扩充到了19种,应用也很广泛,值得重点关注起来. Extension几乎可以看做一个内嵌的独立App,拥有独立的Bund ...
- ios常用的框架(源自知乎上的回答)
首先,学习这类开源项目的主要目的是为了实现产品汪需求,如果不是这个目的,完全可以看Explore GitHub,当前最火的开源项目都在这里,当然你需要过滤一下语言. 好了,介绍几个希望能帮助到你. 普 ...
- iOS开发简记(8):数据持久化
数据持久化,也就是把数据保存到磁盘,以后可以再读取出来使用(也可以再次更改或删除).很多场景需要数据持久化,比如为了减轻服务器的访问与存储压力,客户端需要在本地做一些数据持久化的工作. iOS的数据持 ...
随机推荐
- js-权威指南学习笔记9
第九章 类和模块 1.在JS中,类的实现是基于其原型继承机制的,如果两个实例都从同一个原型对象上继承了属性,我们说它们是同一个实例. 2.常见的编程约定:定义构造函数既是定义类,并且类名首字母要大写. ...
- phpMyAdmin安装与配置(涉及LAMP配置)
作者:zccst 安装一个phpMyAdmin还真麻烦,遇到很多问题.不过在解决过程中发现,PHP的水还真深,不是短时间可以看透的. 1,下载 建议去百度软件中心下载 2,使用 (1)解压后,复制配置 ...
- FZU 1058 粗心的物理学家
这题有毒.要用long double定义,以及cout控制格式输出. #include<cstdio> #include<cstring> #include<cmath& ...
- tp框架设置 mysql数据库的端口号
<?php return array( //'配置项'=>'配置值' SHOW_PAGE_TRACE=>true,//开启trace信息 'DB_TYPE' => 'mysql ...
- iOS开发——判断是否第一次启动
在我们做项目的时候,判断是否是第一次启动,还是比较常用的,比如,欢迎界面,只是第一次启动需要的调查问卷等等,目的明确,方法很多,这里介绍一种简单的. 在你需要只有第一次启动才跳转的地方写上 if(![ ...
- 安装pip工具
Python 2.7.9+ and 3.4+ Good news! Python 3.4 (released March 2014) and Python 2.7.9 (released Decemb ...
- 如何设置打开jsp页面速度加快?
1.
- C,C++,VC++有什么区别
C语言是一种古老而又经久不衰的计算机程序设计语言,大约诞生于上个世纪60年代.由于它的设计有很多优点,多年以来深受广大程序设计人员的喜爱,并逐渐淘汰了很多其它程序设计语言.我们平时使用的大多数软件都是 ...
- 纠错输出编码法ECOC
纠错输出编码法(Error-Correcting Output Codes,ECOC)不仅能够将多类分类问题转化为多个两类问题,而且利用纠错输出码本身具有纠错能力的特性,可以提高监督学习算法的预测精度 ...
- css :active伪类的理解
/*active伪类为点击鼠标按下去还没松开鼠标的那一瞬间的事件*/