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的数据持 ...
随机推荐
- HUST 1353 Dartboard
构造.应该有多种构造方法.做的时候WA了好几发,怀疑做法是错的,事实上是代码写搓了.. 我是这样构造的:先从上往下左右放奇数,再从下往上左右填偶数 (一)如果n/2是偶数(以12为例) 左边列是内环, ...
- Codeforces#355
大小号刷题,大号,被查重,悲剧,最后小号过了3题 A题: 分析:大于h的+2,小于等于h的+1 #include <iostream> #include <cstdio> #i ...
- jQuery-ui datepicker的使用演示代码
这两天使用jquery做一个web端展示的工具,遇到了不少问题也学到了不少知识.其中有一个就是在页面中显示日期选择器的功能,通过百度直接使用的是jquery datepicker 看到一篇使用说明很不 ...
- UVa 990 - Diving for Gold
题目大意:一个潜水者去海底寻找金子,已知有n个有金子的地点,分别给出他们的深度和价值.但是由于潜水者只有一瓶氧气,所以他只能在海底呆有限的时间,问他如何才能在这有限的时间里获得尽可能多的金子,并打印出 ...
- C#通过socket判断FTP服务器是否通畅并判断用户名密码是否正确
private static ManualResetEvent timeoutObject; private static Socket socket = null; private static b ...
- 2.9. Scalar Properties for Primitive Data Types 选项(Core Data 应用程序实践指南)
该选项的意思是,“用Scalar特性来表示原始数据类型”.什么意思,妈妈米呀,这是我学这门课程遇到的最难懂的概念. scalar properties,是复数,也就是说是 “分等级的属性”.那么,大概 ...
- @RequestBody和@ResponseBody
@RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象. @ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMess ...
- 用Linux命令行获取本机外网IP地址
引言:目前获取ip的方法中,ifconfig和ip获取函数得到的都是内网ip.有时候需要获取外网ip,目前通用的做法,是向外部服务器发送请求,解析外部服务器响应,从而得到的自己的外网ip.linux下 ...
- JSP userBean setProperty getProperty指令使用
JSP userBean setProperty getProperty指令使用 javaBean的属性取决于get/set方法,而不是真实的属性名称. jsp文件: <%@ page lang ...
- 《深度探索C++对象模型》笔记——Data语意学
Data Member的绑定 inline member functin躯体之内的一个data member绑定操作会在整个class声明完成之后才发生. argument list中的名称还是会在它 ...