根据一对多关系中的属性对 NSFetchRequest 进行排序?

Posted

技术标签:

【中文标题】根据一对多关系中的属性对 NSFetchRequest 进行排序?【英文标题】:Sorting an NSFetchRequest Based on a Property within a One-to-Many Relationship? 【发布时间】:2011-08-05 08:12:14 【问题描述】:

我一直在搜索 SO 搜索结果,但(到目前为止)找不到这个问题的答案。

给定一个与实体 B 具有一对多关系的数据实体 A,有没有办法让我的 NSFetchedResult 对实体 B 的 property 进行排序。即我可以进行排序吗描述符键深入到实体 B?我试过点符号等,但没有任何效果。

例如实体 A 具有关系 inEntityB。实体 B 有一个属性entityBproperty。如何根据它们各自的inEntityB 关系的entityBproperty 值对实体 A 的列表进行排序?

类似的东西(不,这不起作用):

request.sortDescriptors = [NSArray arrayWithObjects:
    [NSSortDescriptor sortDescriptorWithKey:@"entityAproperty" ascending:NO selector:@selector(localizedStandardCompare:)], 
    [NSSortDescriptor sortDescriptorWithKey:@"inEntityB.entityBproperty" ascending:NO selector:@selector(localizedStandardCompare:)], 
    nil];

在实体 A 中复制我想要排序的 entityBproperty 似乎效率非常低。您可以划分数据模型以使其更易于管理,这难道不是关系的全部意义吗?

非常感谢任何建议!谢谢!

编辑:我不确定我可以添加哪些额外信息来帮助澄清问题,但鉴于迄今为止缺乏回应,如果有人对我可以在此处添加的其他内容提出建议,我全是耳朵。不幸的是,我还没有赏金特权,或者在这种情况下我会考虑一个,因为这似乎是一个可能更晦涩的问题。

【问题讨论】:

您找到解决方案或解决此问题的方法了吗?我的情况完全一样。如果您能提供任何有用的信息,请告诉我。谢谢。 很遗憾没有。不过,似乎必须有办法做到这一点。您可以使用动态属性来做到这一点。 我们问的是同一个问题吗?这是我的:***.com/questions/13002915/… 【参考方案1】:

看起来可能与此问题 Help sorting an NSArray across two properties (with NSSortDescriptor?) 重复

不幸的是,使用上面的点语法似乎没有简单的方法来做到这一点。

【讨论】:

您引用的问题似乎与核心数据无关。然而,我的问题是核心数据NSFetchRequest 问题的核心(请原谅双关语)。

以上是关于根据一对多关系中的属性对 NSFetchRequest 进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

EF基础知识小记五(一对多多对多处理)

根据一对多关系的值对集合进行排序

一对多及多对多关系

根据关系属性对获取请求进行排序

Hibernate 一对一对多多对多注解属性的总结

CoreData 在一对多关系中编辑一个属性