您的位置:首页 > 职场人生

06-CoreData增删改查

2016-07-11 17:32 302 查看



前言

数据库的操作无非就四个字:增删改查

如何查看CoreData操作数据库的过程?

添加SQL打印 在Edit schemes的Run中添加Arguments:-com.apple.CoreData.SQLDebug 1



1.1-CoreData增加数据

Person *p = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:kManagedObjectContext.managedObjectContext];
p.age = @(13);
p.name = @"张三";

[kManagedObjectContext save];

1.2-CoreData查询数据

//1.创建一个查询请求
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
//2.创建查询谓词(查询条件)
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@",@"张三"];
//3.给查询请求设置谓词
request.predicate = predicate;
//4.查询数据
NSArray<Person*> *arr = [kManagedObjectContext.managedObjectContext executeFetchRequest:request error:nil];

NSLog(@"%@====%@",arr.firstObject.name,arr.firstObject.age);

1.3-CoreData修改数据

//1.创建一个查询请求
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
//2.创建查询谓词(查询条件)
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@",@"张三"];
//3.给查询请求设置谓词
request.predicate = predicate;
//4.查询数据
NSArray<Person*> *arr = [kManagedObjectContext.managedObjectContext executeFetchRequest:request error:nil];

//5.改变数据
arr.firstObject.name = @"李四";
arr.firstObject.age = @(18);

//6.同步到数据库

[kManagedObjectContext save];

1.4-CoreData删除数据

//1.创建一个查询请求
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
//2.创建查询谓词(查询条件)
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@",@"张三"];
//3.给查询请求设置谓词
//    request.predicate = predicate;
//4.查询数据
NSArray<Person*> *arr = [kManagedObjectContext.managedObjectContext executeFetchRequest:request error:nil];

//5.删除数据
[kManagedObjectContext.managedObjectContext deleteObject:arr.firstObject];

//6.同步到数据库

[kManagedObjectContext save];

通过log打印可以看出,CoreData插入一条数据只需要0.0001秒,这个效率还是非常高的

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息