CoreData基础知识总结

1.初始化,声明对象:

AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;

2.fetch - Core Data Fetch:

a:指定一个数据库(请求信息)

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

NSEntityDescription *entity = [NSEntityDescription entityForName:@"<#Entity name#>" inManagedObjectContext:<#context#>];

[fetchRequest setEntity:entity];

b:查询语句(谓词搜索)(查询请求)

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"<#format string#>", <#arguments#>];

[fetchRequest setPredicate:predicate];//添加到请求

c:排序 (根据key排序)

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"<#key#>"ascending:YES];

[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sortDescriptor, nil]];

d:执行命令获得结果(通过请求信息拿到查询到的数组)

NSError *error = nil;

NSArray *fetchedObjects = [<#context#> executeFetchRequest:fetchRequest error:&error];

if (fetchedObjects == nil) {

<#Error handling code#>

}else {

returnfetchedObjects;

}

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

NSManagedObjectContext(托管对象上下文):数据库

NSEntityDescription(实体描述):表

NSFetchRequest(请求):命令集

NSPredicate(谓词):查询语句

4.理解

NSManagedObjectContext*context= [appDelegatemanagedObjectContext];    //指定一个“数据库”

NSFetchRequest*request= [[NSFetchRequest alloc]init];    //创建一个空“命令”

NSEntityDescription*entityDescription= [[NSEntityDescription alloc]entityForName:@"Line" inManagedObjectContext:context];//指定一个“表”,Line即是“表名”,context即这个“表”所在的“数据库”[requestsetEntity:entityDescription];    //给这个“命令”指定一个目标“表”

NSPredicate*pred=[NSPredicate predicateWithFormat:@"(linenum =%d)",i];    //创建一个“查询”,寻找linenum=i的行[requestsetPredicate:pred];    //赋予“命令”具体的内容,即实现一个“查询”NSArray *objects = [contextexecuteFetchRequest:requesterror:&error];    //执行“命令”,获得“结果”objects

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容