所以我有一个自我引用,一对多的关系,标签:
Tag
- Name: String
- Order: NSNumber
- SubTags: [Tag]
- ParentTag: Tag
标签可以有多个子标签,只能有一个父标记
我的目标是使用NSFetchedResultsController以这种方式在UITableView中显示它们(其中每个标记都是一个单元格,我使用空格来显示父级的层次结构):
Parent Tag, order 1
Child Tag, order 1
Child 2 Tag order 2
Parent 2 Tag, order 2
Child 3 Tag, order 1
Child 4 Tag, order 2
这甚至可能吗?我应该以不同方式存储和计算订单密钥,以便我可以按顺序排列吗?
我几天来一直在讨论这个问题,欢迎任何建议:o)
答案 0 :(得分:1)
是的,你应该。就目前而言,要使用FRC,您需要一种方法来订购所有实体实例,但不能使用关系顺序。您可以通过以下方式执行此操作:
所以你将拥有一个层次结构,并订购如下:
Parent 1 Tag, order 1
Child 1 Tag, order 1.1
Child 2 Tag, order 1.2
Parent 2 Tag, order 2
Child 3 Tag, order 2.1
Child 4 Tag, order 2.2
Child 5 Tag, order 2.2.1
您可以通过计算顺序中的点数来判断深度,但最好将深度数存储在子项上,或者至少将该深度存储为瞬态并通过计算父项来计算它。