带有比较器的核心数据排序描述符
Posted
技术标签:
【中文标题】带有比较器的核心数据排序描述符【英文标题】:Core Data sort descriptor with comparator 【发布时间】:2013-07-15 13:54:33 【问题描述】:我有一个像...这样的实体模型
[Event]<--->>[Invite]<<--->[Person]
我想在此创建一个NSSortDescriptor
,这样如果Event
有任何Invite
,其中Person
等于给定的人,那么他们将首先出现。
即如果有 5 个事件,其中一个事件对当前用户有邀请(我传入),那么具有邀请的事件将首先出现在其余四个事件之后。
目前我只是以date
的顺序显示它们,但我想为此创建一个NSSortDescriptor
。
我认为它应该使用sortDescriptorWithKey:ascending:comparator:
我指定比较器但我应该使用什么键? invites
?
【问题讨论】:
这将在内存或存储中的实体上运行(SQL 限制)? 嗯...我不确定。这是我第一次使用的不仅仅是 CoreData NSSortDescriptor 的键。我只是要把它添加到 NSFetchedResultsController 请求的 sortDescriptors 数组中。 【参考方案1】:您不能将sortDescriptorWithKey:ascending:comparator:
与 FRC 一起使用,因为排序将在存储本身的 SQL 中执行,并且无法将块转换为 SQL。你也不能使用瞬态变量。
我会考虑将结果分为 2 个部分(因此有 2 个具有不同谓词的不同获取请求)并分别对每个部分进行排序。然后谓词处理用户信息,排序很简单(按您当前拥有的日期)。
【讨论】:
啊,好的,我明白了。会尝试一下。谢谢。以上是关于带有比较器的核心数据排序描述符的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSDate 的核心数据排序描述符,使用 Swift 的 iOS
核心数据和 NSSortDescriptor 未根据基于 NSString 的第三个描述符排序