在上篇博客中,讲了数据模型和 CoreData 栈的创建,那下一步就是对数据的操作了。和数据库一样,CoreData 里的操作也无非是增删改查。下面我们将逐步讲解在 CoreData 中进行增删改查的方式。
基本的增删改查
插入条目
先来看一下插入条目的方式,在插入之前,我们需要先创建要插入的数据, 使用 NSEntityDesctiption 类的 + (__kindof NSManagedObject *)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context; 方法来创建一个新的 NSManagedObject 对象,入参分别是 entityName 和 managedObjectContext,entityName 也就是实体类的名字,例如,我要插入一条新的 Student 字段,entityName 就是 @”Student”;
context 是 NSManagedObjectContext对象,新增的实体类对象会添加到对应的 context 上下文对象中。这个方法返回的是一个 NSManagedObject 实例,可以根据具体情况转换成相应的子类:
Student *student = [NSEntityDescription insertNewObjectForEntityForName:@"Student" inManagedObjectContext:self.context];
student.studentName = @"小明";
student.studentId = 1;
student.studentAge = 20;
NSError *error;
[self.context save:&error];
调用 save 方法时,可以传入一个 NSError 的指针,如果数据保存出错的话,错误信息会保存到 error 里,这也是 Objective-C 里通常处理错误的方式。
查询条目
从数据库中查询数据,会用到三个类:NSFetchRequest,NSPredicate,NSSortDescriptor,分别说一下这三个类的作用:
- NSFetchRequest — fetchRequest 代表了一条查询请求,相当于 SQL 中的 SELECT 语句
- NSPredicate — predicate 翻译过来是谓词的意思,它可以指定一些查询条件,相当于 SQL 中的 WHERE 子句,有关 NSPredicate 的用法,可以看我之前写过的一篇文章:使用 NSPredicate 进行数据库查询

本文详细介绍了如何在 CoreData 中进行数据的增删改查操作,包括基本操作和进阶技巧。从插入条目、查询条目、删除条目到更新条目,再到批量插入、批量更新和批量删除,通过实例代码展示了每个操作的实现方法。最后提到了iOS 8引入的NSBatchUpdateRequest用于高效地进行批量更新和NSBatchDeleteRequest用于批量删除,为大数据量操作提供了解决方案。
最低0.47元/天 解锁文章
520

被折叠的 条评论
为什么被折叠?



