CoreData|CoreData 增删改查
CoreData增删改查
1.1-CoreData增加数据
Person *p = [NSEntityDescriptioninsertNewObjectForEntityForName:@"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 *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 *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【CoreData|CoreData 增删改查】 *arr = [kManagedObjectContext.managedObjectContext executeFetchRequest:request error:nil];
//5.删除数据
[kManagedObjectContext.managedObjectContext deleteObject:arr.firstObject];
//6.同步到数据库
[kManagedObjectContext save];
1.5-CoreData清空数据库
- 清空数据库可以使用删除文件的方式
- 通过沙盒路径进入到沙盒可以看到数据库文件有三个,我们逐一删除便可
- 代码中的kFileName是一个宏 表示创建的路径
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
//沙盒中三个文件
NSString *filePath1 = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.db",kFileName]];
NSString *filePath2 = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.db-shm",kFileName]];
NSString *filePath3 = [documentsPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.db-wal",kFileName]];
NSError *error;
BOOL success = [fileManager removeItemAtPath:filePath1 error:&error];
[fileManager removeItemAtPath:filePath2 error:nil];
[fileManager removeItemAtPath:filePath3 error:nil];
if (success) {
NSLog(@"Remove fiel:%@ Success!",kFileName);
} else {
NSLog(@"Could not delete file -:%@ ",[error localizedDescription]);
}
推荐阅读
- 增长黑客的海盗法则
- Excel|Excel 2013 新增功能之瞬间填充整列数据!
- 木村拓哉透露“增高术”,16岁女儿身高1米7,每天都坚持一件事
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript之DOM增删改查(重点)
- 窝在家里,你闷坏了吗(了解这12个假设,给自己的心理增加免疫力)
- MX19022-王阿呆-第4节课作业(做市场行情精准判定与竞品分析#萌新运营苑裂变增长操盘手#)
- 应为自己增值
- 12.新增腾讯的统计(以渠道来源说明)
- 构建你的知识体系,让你学习效能倍增!