美文网首页首页投稿(暂停使用,暂停投稿)
iOS 数据库篇(一) CoreData 认识与入门---原理

iOS 数据库篇(一) CoreData 认识与入门---原理

作者: wanna_dance | 来源:发表于2017-06-20 21:06 被阅读275次

众所周知,在日常的开发项目中,免不了要使用数据库这个东西来进行数据上的管理,虽然iOS 是移动端开发,但是把一些用户数据等一些数据进行缓存,存储,会大大节省开发效率以及提升用户体验,说起数据库,先下主流的方式有两种,一种是用基于 SQL 开发的数据库(现下大多数用 FMDB第三方库来开发)另一种则是 iOS 原生的 CoreData 来进行数据库开发.今天我们要来学习的就是 CoreData

CoreData 是一个纯粹面向对象的框架,可以管理实体以及实体之间的关联关系的持久化,也就是我们常说的数据持久化.

优点:

  • 1.不用写 SQL 语句,这对于有些同学来说应该是一个福音,而且 SQL 语句错误时会导致问题不便于找出来,所以这也是一个便捷错作啦
  • 2.代码清晰,如果有语法错误会即使提示,而不是等到运行时才知道错误.
  • 3.配备可视化的结构,让对于字段的增删清晰明朗

缺点:

  • 1.是一个重量级的数据库管理,产生很多代码量
  • 2.对于复杂的联合表查询不适用
  • 3.出错不容易解决或找到问题,需要有很深的开发功底

那我们先来了解 CoreData 的基本结构吧

  • NSManagedObiectModel(托管对象模型):

该对象负责管理整个应用的所有实体以及实体之间的关联关系。当开发者使用Xcode的图形界面设计了实体与实体的关联关系之后,需要使用该对象来加载、管理应用的托管对象模型。

  • NSPeristentStoreCoordinator(持久化存储协调器):

负责管理底层的存储文件,例如SQLite数据库等。

  • NSManagedObjectContext(托管对象上下文):

该对象是Core Data的核心对象,应用对实体所做的任何增、删、查、改操作都必须通过该对象来完成。

  • NSEntityDescription(实体描述):

该对象代表了关于某个实体的描述信息,从某种程度来说,该对象相当于实体的抽象。实体描述定义了该实体的名字、实体的实现类,并用一个集合定义了该实体包含的所有属性。

  • NSFetchRequest(抓取请求):

抓取请求NSFetchRequest:该对象封装了查询实体的请求,包括程序需要查询哪些实体、查询条件、排序规则等。抓取请求定义了本次查询的实体的名字、抓取请求的查询条件,通过NSPredicate来表示,并用一个NSArray集合定义了所有的排序规则。

下面通过一张图来理解 它们之间的关联


这里写图片描述 这里写图片描述

CoreData 可以看做是由两部分组成

  • 一个是NSManagedObjectContext管理的模型部分,管理着所有CoreData的托管对象。里面存储的是一个个的 MO 对象

  • 一个是SQLite实现的本地持久化部分,负责和SQL数据库进行数据交互,主要由NSPersistentStore类操作。

了解原理后,我们大致可以知道使用的步骤以及使用的方法,将在下一篇博客里面书写 CoreData 创建与使用

相关文章

  • iOS 数据库篇(二) CoreData创建与使用

    在上一篇博客iOS 数据库篇(一) CoreData 认识与入门---原理讲解篇,我们了解CoreData是什么,...

  • iOS 数据库篇(一) CoreData 认识与入门---原理

    众所周知,在日常的开发项目中,免不了要使用数据库这个东西来进行数据上的管理,虽然iOS 是移动端开发,但是把一些用...

  • iOS_DataBase

    相关实用连接1.认识CoreData - 初识CoreData2.认识CoreData - 基础使用3.iOS进阶...

  • CoreData的简单使用

    CoreData入门 CoreData简介 iOS开发中实现数据持久化存储的一种重要手段 提供了对象-关系映射的功...

  • CoreData入门

    CoreData入门 CoreData是苹果提供的实现SQLite关系型数据库的持久化的框架,具有面向对象理念和对...

  • iOS开发·runtime原理与实践: 基本知识篇

    iOS开发·runtime原理与实践: 基本知识篇 iOS开发·runtime原理与实践: 基本知识篇

  • 【优化篇】coreData数据迁移

    前面有有写过一篇关于coredata简单使用的教程【进阶篇】iOS coreData简单使用教程 说起coreda...

  • CoreData的使用

    CoreData CoreData是苹果为iOS和OSX系统应用提供的数据持久化技术,也就是常说的数据库。其底层就...

  • CoreData+多线程

    基础知识:Core Data入门 查询语句:[IOS开发]CoreData条件查询之NSPredicate应用_超...

  • CoreData学习

    Coredata第一课 认识coredata 问题 在iOS/Mac中我们有许多方式去持久化存储数据:NSUser...

网友评论

    本文标题:iOS 数据库篇(一) CoreData 认识与入门---原理

    本文链接:https://www.haomeiwen.com/subject/mumaqxtx.html