1.CoreData简介

2.CoreData数据模型

3.CoreData的主要对象

4.使用CoreData实现数据存储

一.CoreData简介

CoreData用做数据持久化,是数据持久化的最佳方式,CoreData能合理管理内存,避免使用sql的麻烦,高效,适用于大批量数据存储和查询。

CoreData不是数据库,最终存储形式可以是SQLite数据库,xml,二进制,内存,或自定义数据类型等方式来存储数据。

CoreData提供对象-关系映射的功能,使用面向对象的方式操作数据,即能够将OC对象转化成数据,保存在SQLite数据库中,也能将保存在数据库中的数据还原成OC对象。

二.CoreData数据模型

1.创建数据库模型

2.添加数据库实体

3.添加实体的属性

4.建立实体的关联关系

三.CoreData的相关类

1.NSManagedObjectContext:管理数据上下文,负责应用和数据库之间的交互,负责操作实际内容,主要作用为:插入数据,查询数据,删除数据。 当从数据持久层获取数据时,相当于把这些数据拷贝在便筏簿上,然后就可以随性所欲的修改这些值。通过上下文,可以对数据jil。

2.NSPresistentStoreCoordinator:持久化数据助理,相当于数据库的链接器,是物理数据存储空间存储的物理文件和程序之间的桥梁,负责管理不同对象的上下文。

3.NSEntityDescription:数据实体的描述,相当于数据库的一个表,描述实体间的关系,包括以下几个内容:①实体名称(name) ②实体类名NSManagedObject子类的名称 ③实体实例NSManagedObject对象或其子类的实例

4.NSManagedObjectModel:是被管理的数据对象模型,对应我们自行定义的模型文件,用来加载数据模型文件。包含了各实体的定义信息,主要作用为:用来描述程序中的实体,实体属性,实体间的关系。

5.CoreData核心类的依赖关系

6.总结

①引入CoreData框架 ②创建数据模型文件 .xcdatamodel ③初始化NSManagedObjectModel对象,加载模型文件,读取app中所有实体信息。 ④初始化NSPersistentStoreCoordinator对象,添加持久化库 ⑤初始化NSManagedObjectContext对象,拿到上下文对象操作实体。

四.示例代码

1.加载数据模型

2.创建持久化数据助理

3.数据持久化存储

4.初始化数据操作的上下文

5.NSManagedObjectContext的主要方法

-save:将数据对象保存到数据文件 -deleteObject:将一个数据对象标记为删除,但是要等到context提交更改后才真正删除数据对象 -undo:回滚最后一步操作 -rollback:还原数据文件内容 -reset:清楚缓存的ManagedObject 。只应当在添加或删除persistent Stores使用 -executeFetchRequest:error:执行Fetch request并返回所有的匹配的数据对象

6.添加数据

7.查询数据

8.删除数据

五.创建模型子类

默认情况下,利用CoreData取出的实体都是NSManagedObject类型,能够利用键值对来存取数据。但是一般情况下,实体在存取数据的基础上,有时还需要添加一些业务方法来完成一些其他任务,那么久需要创建NSManagedObject的子类。

1.创建模型子类

2.选择模型文件

3.选择需要创建子类的实体

CoreData归纳使用的更多相关文章

  1. iOS基本数据库存储方式 - CoreData

    CoreData 创建模型文件的过程 1.选择模板 2.添加实体 3.添加实体的属性[注意]属性的首字母必须小写 一.CoreData管理类(必备以下三个类对象) 1.CoreData数据操作的上下文 ...

  2. AndroidProjects个人项目归纳

    AndroidProjects 个人总结归纳-目录大纲 Data Binding框架MVVM BaseView CollapseView 更新中... 项目地址:https://github.com/ ...

  3. iOS CoreData 中 objectID 的不变性

    关于 CoreData的 objectID 官方文档有这样的表述:新建的Object还没保存到持久化存储上,那么它的objectID是临时id,而保存之后,就是持久化的id,不会再变化了. 那么,我想 ...

  4. CoreData __ 基本原理

    操作过程 Context想要获取值,先要告诉连接器,我要什么东西 链接器再告诉store, 你给我什么东西, store去找 找到之后返回给链接器,链接器再返回给Context          Co ...

  5. iOS CoreData primitive accessor

    Given an entity with an attribute firstName, Core Data automatically generates firstName, setFirstNa ...

  6. 初识CoreData与详解

    Core Data数据持久化是对SQLite的一个升级,它是iOS集成的,在说Core Data之前,我们先说说在CoreData中使用的几个类. (1)NSManagedObjectModel(被管 ...

  7. CoreData教程

    网上关于CoreData的教程能搜到不少,但很多都是点到即止,真正实用的部分都没有讲到,而基本不需要的地方又讲了太多,所以我打算根据我的使用情况写这么一篇实用教程.内容将包括:创建entity.创建r ...

  8. CoreData和SQLite多线程访问时的线程安全

    关于CoreData和SQLite多线程访问时的线程安全问题 数据库读取操作一般都是多线程访问的.在对数据进行读取时,我们要保证其当前状态不能被修改,即读取时加锁,否则就会出现数据错误混乱.IOS中常 ...

  9. IOS数据存储之CoreData使用优缺点

    前言: 学习了Sqlite数据之后认真思考了一下,对于已经习惯使用orm数据库的开发者或者对sql语句小白的开发者来说该如何做好数据库开发呢?这个上网搜了一下?看来总李多虑了!apple 提供了一种数 ...

随机推荐

  1. 关于C++中static初始化位置

    编译原理作业中关于static的初始化位置问题: 在.h文件中这样声明了一个静态数据成员 class Expression { private: static std::vector<Ident ...

  2. Java8-初识Lambda

    廉颇老矣,尚能饭否 Java,这位已经20多岁的编程语言,称得上是编程语言界的老大哥了.他曾经攻城略地,碾压各路编程语言小弟,风光无限,不可一世.现在,也是家大业大,江湖地位,很难撼动. 但是,这依然 ...

  3. 软件工程(GZSD2015)第二次作业进度

    贵州师范大学软件工程第二次作业 徐 镇 王铭霞 张 英 涂江枫 张 燕 安 坤 周 娟 杨明颢 杨家堂 罗文豪 娄秀盛 周 娟 李盼 岳庆 张颖 李丽思 邓婷 唐洁 郑倩 尚清丽 陈小丽 毛茸 宋光能 ...

  4. oop学习 计算器类的规划

    类的学习 题目要求 采取面向对象的方法,四则运算自动出题软件,根据需求可以划分为几个类?每个类具有什么属性?每个类具有什么行为? 类与类之间是如何进行协作的?谁给谁发送消息?谁持有谁的引用? 该自动出 ...

  5. 搭建JSP开发环境

    所谓"工欲善其事,必先利其器",要进行JSP网站开发,首先需要把整个开发环境搭建好. JSP开发运行环境 -开发工具包JDK(Java Develop Kit),即Java开发工具 ...

  6. 201521123015 《Java程序设计》第七周学习总结

    1. 本周学习总结 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码如下: public boolean contains(Object ...

  7. 201521123080《Java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 1.网络编程概述 (1)网络模型 OSI参考模型 TCP/IP参考模型 (2)网络通讯要素 IP地址 端口 ...

  8. 《MySQL必知必会》[02] 多表联合查询

    1.基本连接 不同类型的数据,存储在多个表中,而所谓多表连接,就是将多个表联合返回一组输出. 1.1 等值连接 基本的连接方式非常简单,只需要在WHERE子句中规定如何关联即可,如下: SELECT ...

  9. nmcli命令大集合

    nmcli命令 地址配置工具:nmcli nmcli  device  查看所有网卡的信息 nmcli  device  status 和numcli device 相同 nmcli  device ...

  10. WEP无线加密破解

    工具:Aircrack套件(airmon-ng.airodump-ng.aireplay-ng) 带有套件的操作系统:KaLi Linux.BackTrack.Beini(奶瓶)...等 1.开启无线 ...