带有排序描述符的NSFetchRequest,用于递归CoreData实体关系

时间:2014-01-31 16:32:25

标签: recursion relationship nsmanagedobject nsfetchrequest nssortdescriptor

我有一个简单的CoreData实体“MyEntity”,它具有递归关系: MyEntity definition

(在这种情况下,这种关系是一对一的关系)

想象一下,我创建了这个实体的5个对象:

ObjectA -> ObjectB -> ObjectC -> ObjectD -> ObjectE

ObjectBObjectA的孩子,依此类推)

我想用NSSortDescriptors创建一个NSFetchRequest,它以正确的顺序返回对象(从root到last子句):

ObjectA
ObjectB
ObjectC
ObjectD
ObjectE

这可能吗? (我的具体问题有些复杂,但我认为如果我解决了这个问题,我可以完成它)

2 个答案:

答案 0 :(得分:0)

为什么要费心,只需获取父对象,然后直接从属性(关系)中获取它的子项和子项的子项。如果在数组中需要它们,则使用while循环遍历层次结构,直到child = nil。

答案 1 :(得分:0)

据我所知,这个问题已经过时了,但想出了那些后来会偶然发现的人的想法

您可以使用一个获取请求,其中谓词表示父级必须为nil。之后,您不需要更多的提取请求。你只是从这一个(或更多,如果可能的话),对象得到孩子。然后,你从这个新对象(原始对象的孩子)得到孩子。继续,当你还有孩子的时候