美文网首页
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个核心对象)

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