执行获取请求时,我必须在核心数据中提供 NSSortDescriptor 吗?

Posted

技术标签:

【中文标题】执行获取请求时,我必须在核心数据中提供 NSSortDescriptor 吗?【英文标题】:MUST I provide an NSSortDescriptor in core data when doing a fetch request? 【发布时间】:2010-01-25 16:05:41 【问题描述】:

我想知道我是否可以只使用实体而不使用其他任何东西来执行 NSFetchRequest。但是,它似乎没有错误,但是由于我从未见过有人这样做,所以我想知道这样做是否有任何不好的缺点。当我没有提供 NSSortDescriptor 时,文档没有说明是否使用了任何默认值。

【问题讨论】:

【参考方案1】:

它会起作用,但你的对象会以不可预知的顺序返回。如果您真的只需要单个实体的每个实例而不考虑排序,那么是的,它会按照您想要的方式工作。

【讨论】:

【参考方案2】:

是的,NSSortDescriptor 是可选的,NSPredicate 对象数组也是如此。正如亚历克斯所说,您会以未知的顺序收到回复,但是您可能希望这样做有几个原因。您可能希望简单地检查您是否至少有一个特定的NSManagedObject,或者更常见的是,如果您只是在处理数据(而不是显示它),那么您只需要枚举每个对象。在这种情况下,订单可能不相关。

【讨论】:

以上是关于执行获取请求时,我必须在核心数据中提供 NSSortDescriptor 吗?的主要内容,如果未能解决你的问题,请参考以下文章

核心数据使用完成处理程序执行获取请求或在主线程以外的其他线程中执行

executeFetchRequest:error: 获取请求必须有一个实体

获取复杂请求核心数据的谓词和表达式

如何使用姓氏对核心数据进行排序,只有全名可用?

关系属性的核心数据获取请求

在 iOS SWIFT 2 中取消获取请求 [关闭]