博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSFetchRequest
阅读量:6215 次
发布时间:2019-06-21

本文共 1494 字,大约阅读时间需要 4 分钟。

NSFetchRequest

获取数据的请求,通过被管理数据的上下文来执行查询,比如

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

查询时,必须指定查询实体或实体名称,以 NSArray 形式返回查询结果,如果我们没有设置任何查询条件,则返回该 Entity 的所有数据对象。

我们可以使用谓词来设置查询条件,通常会将常用的 Fetch Requests 保存到 dictionary 以重复利用。

NSFetchRequest包括以下部分:

(1)实体(Entity)的名称

(2)NSPredicate谓词(搜索关键字或限定条件)

(3)排序方式(NSArray *)sortDescriptors

所有的被管理对象(managed object)都必须在上下文中注册,而通过NSFetchRequest获得的对象自动被注册。

如果在上下文中已经存在了要获取的对象,那么这个被管理NSManagedObject将被返回。否则上下文就会从相关的数据源中查找(也可能找不到)

例如,以下代码是查询在指定日期之后创建的ContactInfo,并将查询结果按照name排序

复制代码

NSManagedObjectContext * context  = [self managedObjectContext];

NSManagedObjectModel   * model    = [self managedObjectModel];

NSDictionary           * entities = [model entitiesByName];

NSEntityDescription    * entity   = [entities valueForKey:@"ContactInfo"];

 

NSPredicate * predicate;

predicate = [NSPredicate predicateWithFormat:@"creationDate > %@", date];

                         

NSSortDescriptor * sort = [[NSortDescriptor alloc] initWithKey:@"name"];

NSArray * sortDescriptors = [NSArray arrayWithObject: sort];

 

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

[fetch setEntity: entity];

[fetch setPredicate: predicate];

[fetch setSortDescriptors: sortDescriptors];

 

NSArray * results = [context executeFetchRequest:fetch error:nil];

[sort release];

[fetch release];

复制代码

常用方法:

-setEntity:设置你要查询的数据对象的类型(Entity)

-setPredicate:设置查询条件

-setFetchLimit:设置最大查询对象数目

-setSortDescriptors:设置查询结果的排序方法

-setAffectedStores:设置可以在哪些数据存储中查询

转载于:https://www.cnblogs.com/karling/p/5033525.html

你可能感兴趣的文章
Android平台下与服务器数据库通信的方法
查看>>
TCP/IP 6.2增强型内部网关路由选择协议(EIGRP)(2)
查看>>
hadoop2.x分布式集群安装配置 ~第三步:ssh免密钥配置
查看>>
ubuntu下locale设定
查看>>
从个人网站到淘宝网 仰观Java时代淘宝的技术发展
查看>>
你有拒绝 22K 的权力(转)
查看>>
LinkCloud谈云主机与主机托管主机租用的区别
查看>>
http的keepalive参数设置策略
查看>>
关于PPP认证中的PAP和CHAP原理取证与相关疑问
查看>>
MAVEN指南-3、使用问题及思考汇总
查看>>
利用JNI进行对象操作
查看>>
Real-Rime Rendering (2) - 变换和矩阵(Transforms and Matrics)
查看>>
Hessian和Spring整合
查看>>
easyui 合并问题
查看>>
漏洞信息发布平台和网络安全
查看>>
UIKit框架(10)自定义modal过渡效果
查看>>
setXfermode之使图片圆角化
查看>>
JAVA根据IP地址获取详细的地域信息
查看>>
Tomcat安装部署和安全加固优化以及反向代理应用
查看>>
常用软件整理
查看>>