iOS-CoreData的简单操作以及版本迁移

了解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对数据库进行操作的增删改查就使用了几个类,步骤都差不多,除了增加数据的时候,其他的基本都是一样的,只要理解以上常用的类,灵活使用就可以对数据进行想要的操作了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容