核心数据库CoreData之NSPersistentStoreCoordinator持久化存储

时间:2021-09-20 20:05:54

表结构:NSEntityDescription   实体对象,表名

表记录:NSManagedObject  一个管理对象代表你想要保存到数据存储中的一个对象,类似于SQL中的一条记录,并且包含一些对象属性

表查询:NSFetchRequest  

数据库存储方式:NSPersistentStoreCoordinator 持久化存储协调者 ,包含数据存储的名字和位置,

数据库模型:NSManagedObjectModel  管理对象数据模型,包含一个你想存储到数据存储中的管理对象的定义

数据库操作:NSManagedObjectContext 管理对象的上下文,类似于应用程序和数据存储间的一块缓冲区,你可以增删改查管理对象

-(NSManagedObjectContext*)managedObjectContext{

if(_managedObjectContext!=nil){

return _managedObjectContext;

}

[_managedObjectContext  setPersistentStoreCoordinator: coordinator]; //设置管理对象上下文的持久化存储协调者

}

-(NSManagedObjectModel*)managedObjectModel{

if(managedObjectModel!=nil){

return managedObjectModel;

}

managedObjectModel=[[ NSManagedObjectModel alloc] initWithContentsOfURL:[[ NSBundle mainBundle] URLForResource:@"coredata" withExtension:@"momd"]]; // 设置管理对象模型的momd数据模型文件;

-(NSPersistentStoreCoordinator*)persistentStoreCoordinator{

if(persistentStoreCoordinator!=nil){

returnpersistentStoreCoordinator;

}

persistentStoreCoordinator=[ NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: managedObjectModel];

NSURL *storeURL=[ NSSeachPathForDirectoriesInDomains( NSDocumentDirectory,NSUserDomainMask,YES)lastObject ]stringByAppendingPathComponent:@"coredata.sqlite" ]; // 将sqlite文件存放到应用程序的沙盒目录下

}

}