CoreDate 是什么

本来摘抄自: <>, 希望下面的复述能够提高自己的理解.

*coreData:

CoreData是个框架, 它使的开发者可以把数据库中的数据当成对象来操作, 而不必在乎数据在磁盘中的存储方式.对于开发者来说通过代码管理对象应该是非常熟练的了.CoreData本身位于我们的应用程序和持久化存储区之间. 持久化存储区是通用术语,指的是像SQLite数据库,XML文件(iOS不支持用XML文件作为持久化存储区)或Binary store这种数据文件.由于这些文件在底层硬件重启之后还会保留下来, 所以他们是持久的.还有一种持久化方式,他的名字非常奇怪, 叫做"In-Memory store". ---但要注意的是 Binary和XML格式的存储区是"原子的",也就是说,即便你只想修改少量数据, 在保存的时候也依然需要把整个文件都写入磁盘.这样在数据很多的情况下, 存储过程就会占用宝贵的内存空间.



  1. 持久化协调器

  2. 持久化协调器里面包含一个持久化存储区, 而存储区里面又含有数据表里的若干行数据.设置持久化存储协调器的时候, 我们通常选用SQLite数据库作为持久化存储区.
    同一个持久化存储协调器可以有错个持久化存储区.把CoreData与ICloud相集成的时候就会出现这种情况.
  3. 托管对象模型

  4. 它位于持久化存储协调器和托管对象上下文之间. 顾名思义: 托管对象模型是描述数据结构的模型或视图.而托管对象正是以他为基础产生出来的.(NSManagedObjectMoel)也叫被管理的对象模型.
  5. 托管对象上下文

  6. 托管对象上下文负责管理其中对象的生命周期, 并且负责提供许多强大的功能, 比如: faulting, 变更追踪, 验证等. 所谓faulting,意思是用户从持久化存储区中获取数据时, 系统只会把需要的那一部分获取过来. 持久化存储区可以有多个, 同样上下文也可以有多个,.
    *托管对象上下文是放在高速内存里的, 这样在我们处理数据的时候会很大程度的提高存取速度, 不需要再从硬盘中读取数据. 所以我们在处理完上下文数据的时候 , 一定要记得做Save操作, 将数据更新保存到磁盘中.

你可能感兴趣的:(CoreDate 是什么)