Recursion 具有递归CoreData实体关系排序描述符的NSFetchRequest

Recursion 具有递归CoreData实体关系排序描述符的NSFetchRequest,recursion,relationship,nsmanagedobject,nsfetchrequest,nssortdescriptor,Recursion,Relationship,Nsmanagedobject,Nsfetchrequest,Nssortdescriptor,我得到了一个简单的CoreData实体“MyEntity”,它具有递归关系: (在这种情况下,关系是一对一的关系) 假设我创建了这个实体的5个对象: ObjectA -> ObjectB -> ObjectC -> ObjectD -> ObjectE (ObjectB是ObjectA的子对象,依此类推) 我想使用NSSortDescriptors创建一个NSFetchRequest,它以正确的顺序(从根到最后一个子)返回对象: 这可能吗? (我的具体问题有点复杂,但

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

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

假设我创建了这个实体的5个对象:

ObjectA -> ObjectB -> ObjectC -> ObjectD -> ObjectE
ObjectB
ObjectA
的子对象,依此类推)

我想使用NSSortDescriptors创建一个NSFetchRequest,它以正确的顺序(从根到最后一个子)返回对象:

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

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

我明白,这个问题已经过时了,但我还是为那些后来偶然发现的人想出了这个主意


您可以使用一个带谓词stating的fetch请求,即父级必须为nil。在此之后,您不需要更多的获取请求。您只需从这个(或多个,如果可能的话)对象中获取子对象。然后,从这个新对象(原始对象的子对象)获取子对象。然后继续,当你有孩子的时候,谁也得不到?我知道,这可能是一个困难的问题…是的,我已经做了,但现在是n个获取请求,而不是1个。如果输入超过10000条,这不是性能杀手吗?面临着类似的问题。如果要在NSFetchedResultsController中使用结果,该怎么办?在表视图中显示时,条目的数量可能会更改。你知道如何实现这一点吗?
ObjectA
ObjectB
ObjectC
ObjectD
ObjectE