美文网首页本地缓存Ios@IONIC
Core Data 中涉及的基本对象简介(概念)

Core Data 中涉及的基本对象简介(概念)

作者: 扬仔360 | 来源:发表于2015-11-26 16:01 被阅读68次

本文暂时还是半成品
对于读者:暂时不建议阅读学习这篇文章:
在栈上没有讲太详细,后面跟 CoreDataStack 类那篇文章结合成一篇文章。
或者这篇文章当做一个所有Core相关类的索引。


NSManagedObjectContext

表示被操作数据的上下文环境。类似于一种持续性的数据库连接,可以做增删查等操作。

而且只有在调用Save方法的时候,这些所有的改动才会被提交,否则是不会在持久层做任何改动的。

支持撤销和重做。

NSManagedObjectModel

表示被管理的数据模型,这里包含着所有对象的表格信息,所有数据结构,包括他们之间的关系。

在这里添加实体的属性,添加实体和实体之间的关系。

所以NSManagedObjectModel其实包含着NSEntityDescriptionNSPropertyDescription,前者相当于数据库中的一个表,后者相当于表中的一列。NSPropertyDescription可以描述实体的基本属性(Attributes)、实体之间的关系(Relationships)还有 查询属性(FetchedProperty)。

查询属性对应NSFetchedPropertyDescription对象。

Persistent Store

持久化存储层,是由文件或者外部数据库组成的,大多数情况下访问持久化层全部由上下文Context来完成。

CoreData 提供了四种持久化层的方案:

非原子访问的:NSQLiteStoreType
原子访问的:BSXMLStoreTypeNSBinaryStoreTypeNSInMemoryStoreType

XML是将数据存为XML文件,只在 OS X 平台下可用。Binary的方法是存为一个Data文件。InMemory的方式是不会对数据进行真正意义上的持久化,全部存储在内存中,当应用程序退出时,数据也就消失了。

NSPersistentStoreCoordinator

持久化存储助理的存在相当于和数据持久层的连接器,SQLite的话就是和数据库的连接,它设置着数据库的路径名字、位置、存储方式和存储的时机。
CoreData其实就相当于一个栈,栈的底层是持久化存储层,栈顶是Context,所以一般简单的需求我们只需要使用栈顶的Context,那么NSPersistentStoreCoordinator就是栈中层的一层存在,协调上栈的上下层关系。

负责理解NSManagedObjectModel和去NSPersistentStore中执行相应操作。

补充NSManagedObjectContext

NSManagedObjectContext就像内存中的便签纸,临时修改你的ManagedObject,所以知道你提交save(),否则持久化层是不会有变化的。

  • 上下文管理这Managed Object的生命周期,管理的同时提供了很多高级特征可以给以使用,比如排序,Validation、关系管理等。

  • 一个Managed Object是不能独立于Context存在的,即有Managed Object就一定会有它的Context,也可以通过 Managed Object 的.managedObjectContext属性取得它的Context对象。

  • 一旦设置了Managed ObjectContext,那么在Object的很长的生命周期中就会一直跟这个特定的Context关联。

  • 一个应用程序可以有很多个Context,你可以创建两个Context指向一些相同的PersistentStore持久化层。

  • Context并不是线程安全的,所以对于Managed Object也是一样的,它们只可以在创建他们的那个线程上进行操作。

相关文章

  • Core Data 中涉及的基本对象简介(概念)

    本文暂时还是半成品对于读者:暂时不建议阅读学习这篇文章:在栈上没有讲太详细,后面跟 CoreDataStack 类...

  • iOS中的数据持久化方式

    iOS中的数据持久化方式,基本上有以下四种:属性列表、对象归档、SQLite3和Core Data 属性列表 涉及...

  • iOS中的四种数据持久化方式

    属性列表、对象归档、SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,...

  • iOS之Core Data

    Core Data Core Data是用来管理应用程序中model层对象的一个框架,主要是与数据存储相关的。它...

  • iOS 数据存储(五) -持久化 Core Data

    一、简介 Core Data 是苹果官方提供的管理数据层对象的框架,它提供了对象—关系映射(ORM)的功能,即能够...

  • CoreData 简要总结(一)创建长下文

    CoreData简介 Core Data提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在S...

  • coredata

    简介 Core Data 是一个模型层的技术 Core Data 不仅是一个加载、保存数据的框架,它还能和内存中的...

  • UI进阶11 Core Data

    Core Data Core Data框架提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在...

  • iOS Core Data

    一、简介 Core Data框架提供了对象-关系映射(ORM)的功能,即能够将OC对象转化成数据,保存在SQLit...

  • 数据库

    数据库 四个基本概念 数据(Data)数据是数据库中存储的基本对象数据(Data):描述事物的符号记录描述事物的符...

网友评论

    本文标题:Core Data 中涉及的基本对象简介(概念)

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