关闭

Core Data的使用

标签: core-data数据库
84人阅读 评论(0) 收藏 举报
分类:

 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];
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35370次
    • 积分:1112
    • 等级:
    • 排名:千里之外
    • 原创:80篇
    • 转载:3篇
    • 译文:0篇
    • 评论:4条
    文章分类