了解CoreData的使用之前先看看CoreData中三个主要类
CoreData三个类的关系.jpg
-
CoreData 进行增删改查的时候常用的类:
NSEntityDescription
: 获取实体对象
NSFetchRequest
: 请求体
NSPredicate
: 请求条件
NSSortDescriptor
: 排序
CoreData的常用类.jpg CoreData 进行增删改查的简单操作
先引入头文件#import "AppDelegate.h"
底下用到的方法是创建CoreData时系统自动加载到AppDelegate.m中的,所以要先获取到UIApplication的代理对象;
self.myApp = [UIApplication sharedApplication].delegate;
- CoreData增:
1.获取实体对象(下面用到)
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Teacher" inManagedObjectContext:self.myApp.managedObjectContext];
2.初始化的时候使用CoreData的initWithEntity进行初始化
Teacher *teacher = [[Teacher alloc] initWithEntity:entity insertIntoManagedObjectContext:self.myApp.managedObjectContext];
3.给teacher进行赋值
teacher.name = @"呵呵";
teacher.age = 18;
4.保存数据库
[self.myApp.managedObjectContext save:nil];
- CoreData删:
1.获取实体对象(下面用到)
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Teacher" inManagedObjectContext:self.myApp.managedObjectContext];
2.创建请求体
NSFetchRequest *requset = [[NSFetchRequest alloc] init];
3.创建请求条件
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age = 18"];
4.给请求体设置entity属性,还有predicate属性
requset.entity = entity;
requset.predicate = predicate;
5.获取要删除的数据
NSArray *array1 = [self.managedObjectContext executeFetchRequest:requset error:nil];
6.遍历之后,使用deleteObject:删除对象
for (Student *stu2 in array1) {
[self.managedObjectContext deleteObject:stu2];
}
7.保存数据
[self.myApp.managedObjectContext save:nil];
- CoreData:改
1.获取实体对象(下面用到)
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Teacher" inManagedObjectContext:self.myApp.managedObjectContext];
2.创建请求体
NSFetchRequest *requset = [[NSFetchRequest alloc] init];
3.创建请求条件
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age = 18"];
4.给请求体设置entity属性,还有predicate属性
requset.entity = entity; requset.predicate = predicate;
5.获取要修改的数据
NSArray *array1 = [self.managedObjectContext executeFetchRequest:requset error:nil];
6.遍历之后,修改要修改的属性
for (Student *stu2 in array1) {
stu2.name = @"需要修改的内容";
}
7.保存数据
[self.myApp.managedObjectContext save:nil];
- CoreData:查
1.获取实体对象(下面用到)
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Teacher" inManagedObjectContext:self.myApp.managedObjectContext];
2.创建请求体
NSFetchRequest *requset = [[NSFetchRequest alloc] init];
3.创建请求条件
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age = 18"];
4.给请求体设置entity属性,还有predicate属性
requset.entity = entity;
requset.predicate = predicate;
5.获取所查询的内容
NSArray *array1 = [self.managedObjectContext executeFetchRequest:requset error:nil];
6.保存数据
[self.myApp.managedObjectContext save:nil];
-
CoreData的版本迁移
CoreData的版本迁移.png
总结:
从以上可以看到我们使用coreData对数据库进行操作的增删改查就使用了几个类,步骤都差不多,除了增加数据的时候,其他的基本都是一样的,只要理解以上常用的类,灵活使用就可以对数据进行想要的操作了。