CoreData框架的使用

来源:互联网 发布:冻脸效应 知乎 编辑:程序博客网 时间:2024/06/06 22:11

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];
0 0
原创粉丝点击