陈斌彬的技术博客

Stay foolish,stay hungry

CoreData 的基本概念

Core Data 涉及到的几个主要的概念可以对应数据库来理解:

NSManagedObjectContext(托管对象上下文):数据库
NSEntityDescription(实体描述):表
NSFetchRequest(请求):命令集
NSPredicate(谓词):查询语句

指定一个“数据库”

NSManagedObjectContext *context = [appDelegate managedObjectContext];     

指定一个“表”,Line即是“表名”,context即这个“表”所在的“数据库”

NSEntityDescription *entityDescription = [[NSEntityDescription alloc] entityForName:@"Line"inManagedObjectContext:context];     

创建一个空“命令”

NSFetchRequest *request = [[NSFetchRequest alloc] init];     

给这个“命令”指定一个目标“表”

[request setEntity:entityDescription];    

创建一个“查询”,寻找linenum=i的行

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(linenum = %d)",i];     

赋予“命令”具体的内容,即实现一个“查询”

[request setPredicate:pred];     

执行“命令”,获得“结果”objects

NSArray *objects = [context executeFetchRequest:request error:&error];