(先理解一些比较概念的东东)
新建一个数据模型 DataModel
这时候新建出来的一个xcdatamodel后缀的文件我们可称之为NSManagedObjectModel
这个Model可以包含多个实体NSEntityDescription
(一个表描述一个实体),每个实体有三种属性:Attributes、Relatioships、FetchedProperties
接着就可以根据NSEntityDescription
在内存中创建对象,这个对象称之为 NSManagedObject
然后我们需要为这个对象提供一个生存的环境,名称为:NSManagedObjectContext
这里记录着 NSManagedObject
对象的生命周期、变化状态等;
一份NsManagedobjectContext
实例作为NSManagedObject
在内存中的缓存地带,我们可以通过这个实例去读取存储文件中的数据也可以临时创建一批NSManagedObject
对象到其中,可在这个context实例中进行增删改查操作
上面的NSManagedObjectContext
实例只是作为NSManagedObject
的缓存地带,当我们要将内存缓存的数据根据NSManagedObjectModel
进行持久化时,我们就要用到这个类:NSPersistentStoreCoordinator
类,它位于context和存储文件之间,与NSManagedObjectModel
结合,来为context服务,负责将context中的对象信息存储下来,或者将存储文件中的数据读取到context中。
最后就是存储文件NSPersistentStore了,可以是SQlite、二进制、或XML文件格式等。