CoreData的简单使用<四、多个数据库>
来源:互联网 发布:数据分析前途 编辑:程序博客网 时间:2024/06/06 17:29
CoreData的多个数据库
CoreData的多个数据库,每一个数据库需要对应一个上下文。
//// ViewController.m// CoreData//// Created by YanFengZheng on 16/8/27.// Copyright © 2016年 fe. All rights reserved.//#import "ViewController.h"#import <CoreData/CoreData.h>#import "Employee.h"#import "Friendster.h"@interface ViewController ()@property (nonatomic,strong) NSManagedObjectContext *componyContext;@property (nonatomic,strong) NSManagedObjectContext *weiChartContext;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; self.componyContext = [self getContextWithDateModel:@"Compony.momd"]; self.weiChartContext = [self getContextWithDateModel:@"WeiChart.momd"];}#pragma mark - 数据库操作 增、删、改、查//1.插入数据- (IBAction)insertData:(UIButton *)sender { //插入数据的时候,需要使用实体描述拿到实体模型 Employee *employee = [NSEntityDescription insertNewObjectForEntityForName:@"Employee" inManagedObjectContext:self.componyContext]; employee.name = @"王五"; employee.height = @190; employee.birthday = [NSDate date]; [self.componyContext save:nil]; Friendster *friend = [NSEntityDescription insertNewObjectForEntityForName:@"Friendster" inManagedObjectContext:self.weiChartContext]; friend.text = @"秋天来了,天气凉了"; friend.date = [NSDate date]; [self.weiChartContext save:nil];}//查询员工- (IBAction)queryData:(UIButton *)sender { //1:FectchRequest 抓取请求对象 NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Employee"]; //2:设置过滤条件 NSPredicate *pre = [NSPredicate predicateWithFormat:@"name = %@",@"王五"]; request.predicate = pre; //3:设置排序 NSSortDescriptor *height = [NSSortDescriptor sortDescriptorWithKey:@"height" ascending:YES]; request.sortDescriptors = @[height]; //4:执行请求 NSArray *emps = [self.componyContext executeFetchRequest:request error:nil]; //遍历查询结果 for (Employee *emp in emps) { NSLog(@"名字:%@,身高:%@,生日:%@",emp.name,emp.height,emp.birthday); }}- (NSManagedObjectContext *)getContextWithDateModel:(NSString *)dataModel{ //1.创建模型文件[相当于数据库里的表] //2.添加实体 [一张表] //3.创建实体类 [相当于模型] //4.生成上下文 关联模型文件生成数据库 //4.1上下文 NSManagedObjectContext *context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; //4.2持久化存储协调器 NSURL *componryURL = [[NSBundle mainBundle] URLForResource:dataModel withExtension:nil]; NSManagedObjectModel *model = [[NSManagedObjectModel alloc] initWithContentsOfURL:componryURL]; NSPersistentStoreCoordinator *store = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model]; //4.3设置数据库路径 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *sqliteName = [[dataModel componentsSeparatedByString:@"."] firstObject]; NSString *sqlitePath = [doc stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.sqlite",sqliteName]]; NSLog(@"%@",sqlitePath); [store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSURL fileURLWithPath:sqlitePath] options:nil error:nil]; context.persistentStoreCoordinator = store; return context; /*在写以上代码的时候,先初始化上下文,再初始化上下文需要的持久化存储协调器,再初始化持久化存储协调器所需要的模型文件,最后添加持久化类型和文件路径。个人感觉按照这个方法比较容易记忆。 */ }@end
0 0
- CoreData的简单使用<四、多个数据库>
- 【CoreData】多个数据库使用
- 使用CoreData数据库框架的简单方式
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- coreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用
- CoreData的简单使用<一、CoreData数据库表的建立以及增删改查操作>
- CoreData的简单使用<二、CoreData两张数据库表的关联操作>
- CoreData简单地的使用
- XMPP框架 微信项目开发之CoreData学习——使用CoreData建立多个数据库
- iOS开发-CoreData的简单使用
- C++中的Vector与map
- [PAT] B1043
- JQuery基础内容
- 图片验证码
- android复选框删除、反选、全选以及取消
- CoreData的简单使用<四、多个数据库>
- uboot简化SI工程
- 线性表(1)--顺序表模拟
- 小牛各个版本的限速破解方式-适用N1/M1/N1s----附加转向灯提示音修改
- RxJava&&RxAndroid学习地址备忘
- 在mac下用VLC对比两个视频质量
- fatal: The remote end hung up unexpectedly
- Qt之对象树与所有权
- git 多个账号问题