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

了解CoreData的使用之前先看看CoreData中三个主要类


iOS-CoreData的简单操作以及版本迁移_第1张图片
CoreData三个类的关系.jpg
  • CoreData 进行增删改查的时候常用的类:
    NSEntityDescription: 获取实体对象
    NSFetchRequest: 请求体
    NSPredicate: 请求条件
    NSSortDescriptor: 排序

    iOS-CoreData的简单操作以及版本迁移_第2张图片
    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的版本迁移


    iOS-CoreData的简单操作以及版本迁移_第3张图片

    iOS-CoreData的简单操作以及版本迁移_第4张图片

    iOS-CoreData的简单操作以及版本迁移_第5张图片
    CoreData的版本迁移.png

总结:

从以上可以看到我们使用coreData对数据库进行操作的增删改查就使用了几个类,步骤都差不多,除了增加数据的时候,其他的基本都是一样的,只要理解以上常用的类,灵活使用就可以对数据进行想要的操作了。

你可能感兴趣的:(iOS-CoreData的简单操作以及版本迁移)