Core Data的使用

 Core Data不是应用程序的数据库,也不是将数据持久化保存到数据库的API。Core Data是一个用于管理对象图的框架。Core Data可以把对象图写入磁盘从而持久化保存。

1.Core Data stack

 Core Data stack是Core Data的核心,由一组Core Data核心对象组成.
 ➢  NSManagedObjectContext  对象管理上下文:    负责管理模型的对象的集合 
 ➢  NSManagedObjectModel    被管理的对象模型:   负责管理对象模型
 ➢  NSPersistentStoreCoordinator    存储调度器:  负责将数据保存到磁盘的

2.多表关联

Type:
toOne:只指向一个对象
toMany:可以包含多个对象(一般是集合类型)


DeleteRule:

ClassRoom.students --> Student  Nullify(作废):
Student.classRoom --> ClassRoom Nullify:

3.NSManagedObjectContext使用上下文查询

1)  实例化查询请求
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

2)  实例化实体描述(指定要去哪个实体里查&使用哪个上下文)
NSEntityDescription *entity = [NSEntityDescription entityForName:[Contact entityName] inManagedObjectContext:[CoreDataTool shareInstance].managedObjectContext];

3)  将查询请求设置实体名
[fetchRequest setEntity:entity];

4)  实例化 查询条件(谓词)
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.name contains 'a'"];

5)  设置查询请求的 查询条件
[fetchRequest setPredicate:predicate];

6)  实例化一个排序器(指定某个属性的升降顺序)
NSSortDescriptor*sortDescriptor=[[NSSortDescriptor alloc] initWithKey:@"namePinYin" ascending:YES];

7)  设置查询请求的排序器(可以多个)
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sortDescriptor, nil]];

8)  使用管理上下文执行查询语句
NSError *error = nil;
NSArray*fetchedObjects=[[CoreDataTool shareInstance].managedObjectContext executeFetchRequest:fetchRequest error:&error];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值