美文网首页
CoreData02-CoreData 栈的创建(3个核心对象)

CoreData02-CoreData 栈的创建(3个核心对象)

作者: Lovell_ | 来源:发表于2017-12-24 22:40 被阅读13次

数据模型创建好之后,想要使用 CoreData 进行数据持久化,下一步就是初始化 CoreData 栈了。

CoreData 初始化的时候,要初始化 CoreData 栈上的三个对象结构,分别是:

  1. NSManagedObjectModel - 描述了数据模型的结构信息(由数据库初始化得到
  2. NSPersistentStoreCoordinator - 数据持久层和内存对象模型的协调器(连接作用,SQLite层和内存对象模型层之间的沟通者;由 managedObjectModel 初始化得到,并指定 sqlite
  3. NSManagedObjectContext - 内存中 managedObject 对象的上下文(内存中模型和协调器之间的沟通者,通过 context 来操作 CoreData

三者关系见下图:

CoreDataStack.png

用数据库 Model 来初始化协调器PersistentStoreCoordinator,上下文 context 对象持有协调器(而协调器又持有 model )。

NSManagedObjectModel ——> NSPersistentStoreCoordinator ——> NSManagedObjectContext.persistentStoreCoordinator。

即:
模型数据库 ——> 持久化协调器 ——> 上下文.持久化协调器

使用:
用上下文 context,来对模型增、删、改、查。

三者的关系,这个图看着比较明确清晰:
1、persistentStoreCoordinator 关联 sqlite,并持有model;
2、最终,context 持有 persistentStoreCoordinator,所以能对数据库增删改查操作。


本文参考:
http://blog.csdn.net/chaoyang805/article/details/53446551
http://blog.csdn.net/qq_29846663/article/details/68961055
http://blog.csdn.net/q199109106q/article/details/8563438

相关文章

  • CoreData02-CoreData 栈的创建(3个核心对象)

    数据模型创建好之后,想要使用 CoreData 进行数据持久化,下一步就是初始化 CoreData 栈了。 Cor...

  • 类和对象

    创建对象 在C中,当使用Studet stu;创建对象时,创建的对象在栈中。使用Student *pStudent...

  • 堆溢出和栈溢出

    堆溢出 :是不断的new 对象,一直创建新对象 栈溢出:方法创建的栈桢超出了栈的深度,可能是方法递归调用,死循环造...

  • OC堆和栈存储内容的区别

    举例:对象存储在堆,而block存储在栈。创建一个对象: 这行代码创建了一个obj对象,指针obj存储在栈,obj...

  • 【golang】性能优化

    1.内存管理 在栈中创建对象比在堆中创建对象性能高,少用new来创建对象,多用object{}创建,如果需要创建大...

  • 内存管理 Tagged Pointer

    Tagged Pointer通常创建对象,对象存储在堆中,对象的指针存储在栈中。我们要找到这个对象,就需要先在栈中...

  • c++基础(创建/实例化对象)

    创建一个对象,根据不同创建方式可以让对象存在于栈或堆内存不同位置,不同类型内存表示对象的声明周期的不同,在栈中对象...

  • alloc的探究

    alloc 分析 对于alloc 系统会创建一个内存对象,并在栈中创建一个对象指针只想对象的地址空间。init操作...

  • Objective-C runtime机制(5.1)——iOS

    概述 当我们创建一个对象时: 上面这行代码在栈上创建了hunter指针,并在堆上创建了一个SWHunter对象。目...

  • JAVA对象内存分配过程

    1 背景 java中创建一个对象时,对象到底是在哪里创建的?什么时候在堆上创建,什么时候在栈上创建? 这些问题,可...

网友评论

      本文标题:CoreData02-CoreData 栈的创建(3个核心对象)

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