概括:

我们先说说这两个东西,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我,我发给你!

CoreData和FMDB你用哪个?的更多相关文章

  1. coreData,sqlite3,fmdb对比

    core data   core data 基于model-view-controller(mvc)模式下,为创建分解的cocoa应用程序提供了一个灵活和强大的数据模型框架.   core data可 ...

  2. 从FMDB到WCDB、微信团队怎么说?

    WCDB背景 自己初次见到WCDB是微信开发团队公众号在今年五月份推送的一篇文章中(开发者团队的微信号上面图片中有,值得大家关注一下),那时候就说在筹备着WCDB的开源,觉得很是新奇,在两个多月前WC ...

  3. 对FMDB的封装JRDB

    在自己开发中,每次用到数据库都会纠结是使用CoreData还是FMDB.CoreData虽然Api简单,但是调用栈非常复杂,要初始化一个Context需要至少20行代码.显然,对于这种这么恶心的情况, ...

  4. Sqlite/ FMDB

    Sqlite 1. Sqlite数据库 > 数据库? 按数据结构来组织,存储和管理数据的仓库. > 关系型数据库:使用二维表及其之间的联系组织成一个数据组织. 关系:可以理解为一张二维表, ...

  5. CoreData介绍

    http://blog.csdn.net/zh952016281/article/details/52105683 写在前面 在CoreData中有一些常用的类,称呼可能各不相同.所以这里先约定一些关 ...

  6. 认识CoreData—初识CoreData

    http://www.cocoachina.com/ios/20160729/17245.html 这段时间公司一直比较忙,和组里小伙伴一起把公司项目按照之前逻辑重写了一下.由于项目比较大,还要兼顾之 ...

  7. App Today Extension开发注意事项

    从iOS 8起,就有了App Extension.Extension的种类至今也扩充到了19种,应用也很广泛,值得重点关注起来. Extension几乎可以看做一个内嵌的独立App,拥有独立的Bund ...

  8. ios常用的框架(源自知乎上的回答)

    首先,学习这类开源项目的主要目的是为了实现产品汪需求,如果不是这个目的,完全可以看Explore GitHub,当前最火的开源项目都在这里,当然你需要过滤一下语言. 好了,介绍几个希望能帮助到你. 普 ...

  9. iOS开发简记(8):数据持久化

    数据持久化,也就是把数据保存到磁盘,以后可以再读取出来使用(也可以再次更改或删除).很多场景需要数据持久化,比如为了减轻服务器的访问与存储压力,客户端需要在本地做一些数据持久化的工作. iOS的数据持 ...

随机推荐

  1. RealView编译器常用特有功能(转)

    源:RealView编译器常用特有功能 一. 关键字和运算符 1. __align(n):指示编译器在n 字节边界上对齐变量. 对于局部变量,n 值可为 1.2.4 或 8. 对于全局变量,n 可以具 ...

  2. HTML学习二(基础)

    HTML标题标题(Heading)是通过<h1>-<h6>等标签进行定义的<h1>定义最大标题<h6>定义最小标题注释:浏览器会自动地在标题的前后添加空 ...

  3. S3C2440启动代码2440init.s彻底解析

    可以选择nand启动和nor启动,这两者之间的关系通过一个按键来选择 这个OM0有何玄机,在数据手册中有这么一段 位宽RAM启动了(当然,还得设置一些东西,下面就说), Nanaflash启动经历的过 ...

  4. Java使用POI实现数据导出excel报表

    Java使用POI实现数据导出excel报表 在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅 ...

  5. BZOJ2064: 分裂

    2064: 分裂 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 360  Solved: 220[Submit][Status][Discuss] De ...

  6. 使用spol导出exce

    sqlplus 能生产xls的excel文件 connect / as sysdba; SET NEWPAGE 0 SET SPACE 0 SET LINESIZE 80 SET PAGESIZE 0 ...

  7. javascript--hasOwnProperty()+isPrototypeof()+in方法

    1.hasOwnProperty():用来检测对象中是否包含给出的函数属性或者对象,但是无法检测出对象的原型链中是否包含给出的属性或对象--该属性或者对象必须在函数内部被声明 2.isPrototyp ...

  8. Python collections.defaultdict() 与 dict的使用和区别

    看样子这个文档是难以看懂了.直接看示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import collections s = [('yellow', ...

  9. sae中thinkphp使用smarty

    因为最近在学thinkphp跟着做一个小商城. 没有使用thinkphp自带的think引擎,使用的是smarty引擎. 在sea中使用的时候出现了问题.已经是前几天的事了,问题图片没保存下来. 在网 ...

  10. jquery serialize 和 console 漫谈

    serialize   获取表单中所有的数据 今天刚刚发现这个神奇的东西,顿时感觉高大上了很多,比以前一个一个用 val()取出来值  ,然后再 ajax 方便多了 代码示例 $(document). ...