ios – 使用NSSortDescriptor通过多对多关系获取CoreData

前端之家收集整理的这篇文章主要介绍了ios – 使用NSSortDescriptor通过多对多关系获取CoreData前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有2个CoreData实体(Person,Pet),具有以下关系:

一个人可以有多个宠物.因此,Person-> Pet之间存在To-Many关系.

我想取所有的人,根据宠物的数量排序,他们拥有宠物最多的人是第一个,宠物最少的人是最后一个.

获取人员列表时,我尝试使用如下的NSSortDescriptor:

[NSSortDescriptor sortDescriptorWithKey:@"pets.count" ascending:NO]

我认为“人”上的“宠物”属性允许我使用NSSet的count属性进行排序.唉,CoreData抱怨这个错误

Fetch exception to-many key not allowed here

这是一个完全错误方法吗?我怎么能用CoreData fetch做这样的事情?

在此先感谢您的帮助.

解决方法

尝试使用 collection operators
[NSSortDescriptor sortDescriptorWithKey:@"pets.@count" ascending:NO]

这不能直接应用(对于获取请求),您需要执行fetch,然后对结果数组运行排序(sortedArrayUsingDescriptors :).

如果要在获取时进行排序,则需要向保存计数编号的实体添加(非瞬态)属性.

原文链接:https://www.f2er.com/iOS/334861.html

猜你在找的iOS相关文章