数据模型创建好之后,想要使用 CoreData 进行数据持久化,下一步就是初始化 CoreData 栈了。
CoreData 初始化的时候,要初始化 CoreData 栈上的三个对象结构,分别是:
- NSManagedObjectModel - 描述了数据模型的结构信息(由数据库初始化得到)
- NSPersistentStoreCoordinator - 数据持久层和内存对象模型的协调器(连接作用,SQLite层和内存对象模型层之间的沟通者;由 managedObjectModel 初始化得到,并指定 sqlite)
- NSManagedObjectContext - 内存中 managedObject 对象的上下文(内存中模型和协调器之间的沟通者,通过 context 来操作 CoreData)
三者关系见下图:

用数据库 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
网友评论