CoreData框架使用的思路:
一、创建上下文的思路
1.”初始化 NSManagedObjectModel 对象,加载模型文件,读取 app 中所有的实体信息
NSManagedObjectModel * model = [NSManagedObjectModel mergedModelFromBundles:nil];
2.”根据 model 来初始化,NSPersistentStoreCoordinator 对象,并添加持久化库
NSPersistentStoreCoordinator * psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
2.1”添加数据库
NSString * doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSURL * url = [NSURL fileURLWithPath:[doc stringByAppendingPathComponent:@"person.sqlite"]];
[psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:nil error:nil];
3.”根据 psc 初始化上下文NSManagedObjectContext 对象
NSManagedObjectContext *context = [[NSManagedObjectContext alloc ] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
context.persistentStoreCoordinator = psc;
二、添加数据到数据库思路
1.”根据上下文创建对象
Person * person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.context];
person.name = @"WB";
person.age = 26;
2.”利用上下文对象,将数据同步到持久化存储库
[context save:nil];
三、从数据库中查找数据
1.”初始化一个查询请求
NSFetchRequest *request = [[NSFetchRequest alloc] init];
2.”设置要查询的实体
request.entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.context];
3.”执行请求
NSArray *objs = [self.context executeFetchRequest:request error:nil];
四、删除数据库中的数据
1.”传入需要删除的实体对象
[context deleteObject:managedObject];
2.”将结果同步到数据库
[context save:nil];