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