CoreData使用
来源:互联网 发布:淘宝描述不符退款 拆解 编辑:程序博客网 时间:2024/05/16 08:07
/* 数据在数据库中的保存形式 : 对象所有的属性都以字段形式保存在数据库中。 字段形式 : Z+属性名(全部大写) 三个系统自定义的字段 Z_PK primay key 主键,从1开始,自动增长 Z_ENT 表索引,表示当前实体在实体描述文件中的位置。 Z_OPT 操作数,初始状态为1,每进行一次修改次+1 */
通过新建Core Data类型里的NSManagedObject subclass来创建模型对象类,自动生成实体描述所设置的属性
CoreData的使用
头文件导入和全局变量
导入CoreData.h头文件
#import <CoreData/CoreData.h>{ NSManagedObjectContext *_objectContext; }
创建图形上下文
//1 创建数据库文件路径 NSString *dataBaseFilePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/DataBase.sqlite"]; NSURL *url = [NSURL fileURLWithPath:dataBaseFilePath]; //2 创建实体模型描述文件 //(1)通过新建Core Data类型里的Data Model文件创建数据模型,可设置属性名和类型 //(2)通过新建Core Data类型里的NSManagedObject subclass来创建模型对象类,自动生成设置的属性 //3 获取实体模型描述文件路径 NSURL *entityFilePath = [[NSBundle mainBundle] URLForResource:@"User" withExtension:@"momd"]; //4通过实体模型描述文件创建模型对象 NSManagedObjectModel *model = [[NSManagedObjectModel alloc] initWithContentsOfURL:entityFilePath]; //5创建数据持久化协调器(PSC) NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model]; //6创建数据库实体文件 /** * 添加数据持久化 * * @param storeType 数据储存类型 * @param configuration 储存的配置 nil * @param storeURL 实体文件的URL地址 * @param options 选项 * @param error 错误提示 * * @return 实体 */ [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:nil error:&error]; //7绑定context的协调器psc _context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; _context.persistentStoreCoordinator = psc;
插入对象
//通过实体描述创建对象 User *user = [NSEntityDescription insertNewObjectForEntityForName:@"User" inManagedObjectContext:_context]; //给对象属性赋值 user.username = [NSString stringWithFormat:@"apel-%i", i]; user.password = @"1234567890"; user.age = @20; //保存上下文,保存数据 [_context save:nil];
查找对象
//创建查询请求对象 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"User"]; //创建谓词(若不创建,默认搜索全部对象) request.predicate = [NSPredicate predicateWithFormat:@"age=%@", age]; //执行查询条件 NSArray *array = [_context executeFetchRequest:request error:nil];
修改某些对象属性值,先查询符合条件对象
//创建查询请求对象 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"User"]; //创建谓词(若不创建,默认搜索全部对象) request.predicate = [NSPredicate predicateWithFormat:@"age=%@", age]; //执行查询条件 NSArray *array = [_context executeFetchRequest:request error:nil]; for (User *user in array) { //修改查询到的对象的属性值 user.password = @"ljpljpljp"; } [_context save:nil];
删除某些对象,先查询符合条件对象
//创建查询请求对象 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"User"]; //创建谓词(若不创建,默认搜索全部对象) request.predicate = [NSPredicate predicateWithFormat:@"age=%@", age]; //执行查询条件 NSArray *array = [_context executeFetchRequest:request error:nil]; for (User *user in array) { [_context deleteObject:user]; } //保存数据 [_context save:nil];
0 0
- CoreData使用
- CoreData 使用
- 使用CoreData
- CoreData使用
- CoreData使用
- CoreData使用
- CoreData 使用
- CoreData 使用
- Coredata使用
- CoreData 欢迎来到CoreData 使用。
- CoreData NSPredicate在CoreData中的使用
- CoreData使用须知
- CoreData的使用
- CoreData简单使用
- coreData 使用分析
- CoreData - Mogenerator 的使用
- CoreData 简单使用事例
- coreData 使用分析
- 手机开发实战181——Scatter file介绍2
- 32. Longest Valid Parentheses
- 手机开发实战182——Scatter file介绍3
- PHP-FPM参数优化
- Python sklearn K-means算法及文本聚类实践
- CoreData使用
- 自定义曲线图
- 手机开发实战183——Scatter file介绍4
- C++继承
- java可变参数
- 如何优化sql语句
- 凸优化工具箱cvx
- 手机开发实战184——Scatter file介绍5
- 解决Hive installation issues: Hive metastore database is not initialized