前言
如何查看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查询数据
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@",@"张三"];
request.predicate = predicate;
NSArray<Person*> *arr = [kManagedObjectContext.managedObjectContext executeFetchRequest:request error:nil];
NSLog(@"%@====%@",arr.firstObject.name,arr.firstObject.age);
1.3-CoreData修改数据
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@",@"张三"];
request.predicate = predicate;
NSArray<Person*> *arr = [kManagedObjectContext.managedObjectContext executeFetchRequest:request error:nil];
arr.firstObject.name = @"李四";
arr.firstObject.age = @(18);
[kManagedObjectContext save];
1.4-CoreData删除数据
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Person"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@",@"张三"];
NSArray<Person*> *arr = [kManagedObjectContext.managedObjectContext executeFetchRequest:request error:nil];
[kManagedObjectContext.managedObjectContext deleteObject:arr.firstObject];
[kManagedObjectContext save];
通过log打印可以看出,CoreData插入一条数据只需要0.0001秒,这个效率还是非常高的
