CoreData 主要的几个类

1 概述

CoreData 是iOS 3 之后出现的一种数据持久化方案,提供了一种ORM的存储关系,CoreData 是直接将对象存储到数据库中去,也可以将数据库中的数据转化为OC对象,过程中不用编写SQL语句。

2 几个类的讲解

  • NSManagedObjectContext 托管对象上下文 进行数据操作使用的这个类
  • NSManagedObjectModel 托管对象模型关联一个模型文件(.xcdatamodeld),存储着数据库的数据结构
  • NSPersistentStoreCoordinator 持久化存储协调器,负责协调存储区和上下文的关系
  • NSManagedObject 托管对象类,所有CoreData 中托管对象必须继承于当前类

3 CoreData 创建的流程

  1. 模型文件操作

    • 创建模型文件,创建工程的时候进行自动勾选也可以生成对应的模型文件(.xcdatamodeld)
    • 添加对应的实体,也就是对应数据库中的表
    • 添加属性设置类型
    • 选中模型文件,点击Editor–> Create NSManageObjectSubclass, 创建托管对象类文件

  1. 实例化上下文对象

    • 创建托管对象上下文(NSManagedObjectContext)
    • 创建托管对象模型(NSManagedObjectModel)
    • 根据托管对象模型创建持久化存储器(NSPersistentStoreCoordinator)
    • 关联并且创建本地数据库文件,并且返回持久化存储对象(NSPersistentStore)
    • 将持久化存储协调器赋值给托管对象上下文,完成基本的创建

4 CoreData 架构

1 数据存储(database)

数据存储是保存一个或者一组文件,当保存消息发送到CoreData之后实际进行写入到磁盘文件

2 持久化存储协调器 (NSPersistentStoreCoordinator)

作用就是从托管上下文中去获取数据请求并将其转发给合适的数据存储。是数据存储和上下文之间的中间人的角色。

3 上下文(NSManagedObjectContext)

提供访问数据对象的主要接口

4 托管对象模型 (NSManagedObjectModel)

代表了数据模型架构,模型有一组实体组成

01-CoreData 概述相关推荐

  1. RN学习笔记01:概述、特点与环境搭建

    RN学习笔记01:概述.特点与环境搭建 一.RN概述 React Native(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 Reac ...

  2. 中学教学01教学概述02教学过程03教学原则与方法

    01教学概述 一.教学的概念 (一)教学的含义 教学的教,学生的学共同组成的一种活动 面对着墙讲课不是教学 教学也不等于教育学 教育学是一门学科,科学 教学不等于教育 教育:教书育人 教育的概念更大 ...

  3. 机器学习入门 01 —— 机器学习概述

    文章目录 系列文章 机器学习概述 1.1.人工智能概述 1 人工智能应用场景 2 人工智能小案例 3 人工智能发展必备三要素 4 人工智能.机器学习和深度学习 5 小结 1.2.人工智能发展历程 1. ...

  4. C 程序设计教程(01)—— 概述

    C 程序设计教程(01)-- 概述 该专栏主要介绍 C 语言的基本语法,作为<程序设计语言>课程的课件与参考资料,用于<程序设计语言>课程的教学,供入门级用户阅读. 目录 C ...

  5. (全栈旅行足迹地图打卡网站 0-1)-项目概述-01(WebGIS Vue-js-go-mysql)

    专栏介绍 首先本专栏是一个全栈项目的旅行足迹地图打卡网站,定位是一个想要做开发的小伙伴,还有就是刚刚开始学习Web项目的大学生,想要做项目或者其他设计的学习源.也定位于目标想要快速上手 WebGIS ...

  6. 笔记 HTML - 01 HTML 概述

    01 HTML 概述 By Kevin Song 定义:HTML 超文本标记语言 特点 最基础的网页语言 代码都是由标签组成 代码不区分大小写 <html><head>< ...

  7. 光脚丫思考Vue3与实战:第04章 模板语法 第01节 概述+插值

    下面是本文的屏幕录像的在线视频: 光脚丫思考Vue3与实战:第04章 模板语法 第01节 插值 温馨提示: 1.视频下载:线上视频被压缩处理,可以下载高清版本: 链接:https://pan.baid ...

  8. 中学课程01课程概述02课程组织03基础教育课程改革

    一.课程概述 (一)"课程"一词的由来-单选-斯宾塞准备学知识 "课程"一次源于斯宾塞<什么知识最优价值>,他是最早把课程作为一个专门的研究术语 ( ...

  9. 【JDBC - 核心技术】01 JDBC概述

    第01章 JDBC概述 创作日期:2021-12-05 1.1 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意 ...

  10. MEM/MBA 写作-论证有效性分析(01) 概述

    1 写作试题概述与简介 MEM/MBA 考试中 作文主要分为两个部分:论证有效性分析 和 论说文,分别位于卷面的56题和57题,如下图所示: 论证有效性分析(30分,参考时间25分钟) 和 论说文(3 ...

最新文章

  1. android 控件id为0,Android Studio错误:(3,0)未找到ID为“com.android.application”的插件...
  2. Java虚拟机JVM学习05 类加载器的父委托机制
  3. Boost智能指针——shared_ptr
  4. 如何用matlab测a相相电流,电流平均值谐波检测方法MATLAB仿真
  5. Palo Doris版五分钟快速入门
  6. 答网友问:如果用 OData 就能直接和 SAP 系统互通,BTP 和 CPI 这样的平台意义在哪里呢?
  7. (48)FPGA状态机描述(一段式)
  8. Linux中文件权限查看和修改
  9. 汇编语言程序设计-钱晓捷(第五版)第一章-汇编语言基础知识
  10. Eclipse SVN 创建分支
  11. linux下低格u盘,拯救U盘,一个靠谱的强制低格的工具
  12. Mac磁盘如何分区?教你Mac系统磁盘自由分区教程!
  13. 软件工程学习笔记(全)
  14. 基于移动终端的增强现实技术方案(已实现)
  15. android 换肤 原理,Android动态换肤实现原理解析
  16. 2014网络红人照片网络红人排行榜2014经典语录网络红人斌少
  17. 在配置kile5 的时候出现core.o的错误如何解决
  18. 百度地图开发之实现运动轨迹 二
  19. 一个 Command 键的两年辛酸史
  20. 祭奠我逝去的8年码农时光

热门文章

  1. hibernate中的hql查询语句list查询所有与iterate查询所有的区别
  2. 关于MSSQL导入导出时主键与约束丢失的问题解决
  3. 浅谈Android四大组件之Service
  4. 开源图形库 FreeImage
  5. 更好的Java虚拟机Zing: 更好的性能,无停顿,更快的启动
  6. 何崚谈阿里巴巴前端性能优化最佳实践
  7. 上传图片,要求图片200100象素,大小小于2M
  8. 一种清除windows通知区域“僵尸”图标的方案——Windows7系统解决方案
  9. CUDA Samples: Julia
  10. Qt简介、安装及在Ubuntu14.04 32位上简单使用举例