CoreData的简单创建和增删改查
来源:互联网 发布:python 打开文件函数 编辑:程序博客网 时间:2024/06/07 09:16
使用步骤:
1、创建模型文件 相当于数据库
2、添加实体 相当于表
3、创建实体类 相当于模型类
4、生成上下文,用于关联模型文件生成数据库
5、保存对象到数据库
6、从数据库获取对象
7、更新数据
8、删除数据
1、模型文件在新建文件里的CoreData下的Data Model
2、点击相应的模型文件在右侧下方有“Add Entity”按钮,用于添加实体,之后表选项在相应表的Attribute处增加
3、实体类在新建文件里的CoreData下的 NSManagedObject subclass,创建过程中勾选表
4、生成上下文之前
在targets的build phases的Link Binary With Libraries加入CoreData.framework然后#import 《CoreData/CoreData.h》
@property(strong,nonatomic)NSManagedObjectContext *context;
//创建上下文NSManagedObjectContext *context = [[NSManagedObjectContext alloc] init];//后面的步骤是关联模型文件//创建一个模型对象(传一个nil会把bundle下的所有模型文件关联起来)NSManagedObjectModel *model = [NSManagedObjectModel mergeModelFromBundles:nil];//持久化存储调度器NSPersistentStoreCoordinator *store = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];//存储数据库的名字NSError *error = nil;//获取document目录NSString *doc = [NSSearchPathForDirectoriseInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];//数据库保存的路径NSString *sqlitePath = [doc stringByAppendingPathComponent:@"company.sqlite"];[store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSURL fileURLWithPath:sqlitePath] options:nil error:&error];context.persistentStoreCoordinator = store;self.context = context;
5、添加数据之前要先在viewDidLoad调用[self setupContext];
//创建员工
Emoloyee *emp1 = [NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManageObjectContext:self.context];//设置员工属性emp1.name = @"zhangsan";emp1.age = @28;emp1.height = @1.80;//通过上下文保存NSError *error = nil;[self.context save:&error];if(!error){NSLog(@"success");}else{NSLog(@"%@",error);}
6、从数据库读取信息
//创建一个请求对象(填入要查询的实体类-表名)NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Employee"];//读取信息NSError *error = nil;//emps就是查找到的数据NSArray *emps = [self.context executeFetchRequest:request error:&error];if(!error){ NSLog(@"emps:%@",emps); for(Employee *emp in emps){ NSLog(@"%@ %@ %@",emp.name,emp.age,emp.height);}else{NSLog(@"%@",error);
做过滤查询的时候设置request的predicate属性就好
结果排序设置request的sortDescriptors属性
7、所有的操作都是暂时在内存里,必须要调用save来同步数据库,否则无法保存。
本博客中emps只是一个NSArray,更新数据时要先新建一个Employee对象指向emps来修改。
Employee *emp = emps[0];emp.height = @1.7;
8、删除数据是查询到emps数据后
for(Employee *emp in emps){ [self.context deleteObject:emp];}[self.context save:nil]
- CoreData的简单创建和增删改查
- CoreData的增删改查
- CoreData的增删改查
- coreData增删改查
- CoreData增删查改
- CoreData“增删改查”
- CoreData 增删查改
- CoreData的简单使用<一、CoreData数据库表的建立以及增删改查操作>
- (CoreData的使用,增删改查)
- iOS CoreData的使用,增删改查
- CoreData的增删改查--可行
- Coredata数据库的增删改查
- coreData增删改查正则
- 06-CoreData增删改查
- iOS CoreData增删改查
- Swift CoreData增删改查
- swift3 CoreData增删改查
- swift 简单实现coreData数据库增删改查和关系表
- esayui from 提交 ie提示下载
- 信息管理系统.0.0
- iOS UIControl 几个事件的说明
- java回调中点获取service对象
- 前端小技巧(一)
- CoreData的简单创建和增删改查
- 影像条带噪声处理
- 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)
- REST and RPC
- github代码搜索技巧
- C++递归求二叉树镜像
- 解决 mfc OninitDialog里面隐藏对话框的方法
- ImageUtils
- nginx变量使用方法详解(4)