概括:

我们先说说这两个东西,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. JAVA基础--适配器模式

    interface Window{ // 定义Window接口,表示窗口操作 public void open() ; // 打开 public void close() ; // 关闭 public ...

  2. jquery在调试时出现缺少对象的错误

    1)引入的js文件出错,  检查方法:将Js的内容写在当前的页面的<script> </script>之间,看是否能够正常运行,如果不能,请核查代码  2) 如果引入的代码在当 ...

  3. 【解决】System.Web.Http.Description 缺失

    一.问题描述 使用visual studio 2013创建mvc4 api模板,然后build,run,broken,出错如下: Error 1 The type or namespace name ...

  4. leetcode day7

    这道题弄的心好累..  [Reverse Linked List]206 描述: Reverse a singly linked list. click to show more hints. Hin ...

  5. css强制折行和隐藏超出部分

    一.强制换行1 word-break: break-all; 只对英文起作用,以字母作为换行依据. 2 word-wrap: break-word; 只对英文起作用,以单词作为换行依据. 3 whit ...

  6. MVC+Repository+UOW+EntityFrmeWork的使用

    1.首先创建一个空的MVC3应用程序,命名为MyRepository.Web,解决方案命名为MyRepository. 2.添加一个类库项目,命名为MyRepository.DAL,添加一个文件夹命名 ...

  7. java系列--I/O流

    java.io类 一.I/O流 1.流的概念 二. InputStream --此抽象类是表示字节输入流的所有类的超类. 1.public int read(byte[] b) throws IOEx ...

  8. CSS3 Transitions 你可能不知道的知识点

    如何临时让transition失效 我们给一个element设置了transition效果,但某些特殊情况,我们希望让transition临时失效.我们第一反应就是先移除transition设置,等其 ...

  9. centos7.0之Lnmp和Lamp

    首先配置防火墙 CentOS 7.0默认使用的是firewall作为防火墙 1.关闭firewall: systemctl stop firewalld.service #停止firewall sys ...

  10. Linux CentOS 安装 httpd

    1.查看并安装服务器是否安装编译器 make gcc gcc-c++ 查看:rpm -q gcc-c++ 2.查看SELinux 和 iptables 的状态 3.在根目录新建文件夹 lamp 4.使 ...