概括:

我们先说说这两个东西,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. (简单) HDU 3397 Sequence operation,线段树+区间合并。

    Problem Description lxhgww got a sequence contains n characters which are all '0's or '1's. We have ...

  2. 一种比较简单的在USB U盘中访问nandflash的方法

    u8 nandflash_write_buffer[NAND_SERECT_FULL_SIZE]; static int currentBlock = -1; static int currentPa ...

  3. AFNetWorking发送post请求,Code=-1016错误

    使用AFNetWorking发送post请求时,可能会出现下面Code=-1016问题.打印的error如下: Error:Error Domain=com.alamofire.error.seria ...

  4. UVa 543 - Goldbach's Conjecture

    题目大意:给一个偶数,判断是否是两个素数的和. 先用sieve方法生成一个素数表,然后再进行判断即可. #include <cstdio> #include <vector> ...

  5. 写一篇 Bootstrap弹窗确认的文章。本周完成

    思路; 点击按钮,显示模态 点击确定,异步提交 根据结果,删除指定的记录

  6. Linux文件编辑之sed命令

    文件编辑之sed命令 sed是一种流编辑器,它是文本处理中非常重要的工具,能够完美配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为模式空间 (pattern space ...

  7. python模块的打包setuptools

    样例代码:新建test.py文件,内容如下: print "show me" 新建一个setup.py编译文件,内容如下: from distutils.core import s ...

  8. scala系列--基础语法

    Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的. 区分大小写 -  Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义. 类 ...

  9. 阿里CEO张勇:阿里蚂蚁20亿元扶持开发者

    https://bbs.taobao.com/catalog/thread/508895-318032179.htm?spm=a21bo.7724922.8439-0.2.tkjSOl 阿里CEO张勇 ...

  10. 动态创建Fastreport(delphi)

    动态创建Fastreport分以下几个步骤: 1.首先清空Fastreport,定义全局变量,并加载数据集    frReport.Clear;    frReport.DataSets.Add(fr ...