我遇到了一个问题,虽然已经解决了,但感觉方法效率不高。问题涉及遍历Core Data(iOS)的实体层次结构,这些实体通过父/子引用链接并附加在特定实体上。
让我更具体地描述一下。我有两种类型的实体:Category
和 Attachment
。
Category
实体通过父/子引用链接。附件作为多对一 (多个附件对应一个分类) 链接到 Categories
上。
如果我想计算给定 Category
层次结构中所涵盖的附件数量,是否可以使用比这更有效的 NSFetchRequest
方法?
NSInteger count = 0;
NSMutableArray *stack = [[NSMutableArray alloc] init];
[stack addObject:targetCategory];
while([stack count] > 0)
{
Category *current = [stack lastObject];
[stack removeLastObject];
count += current.attachments.count;
for (Category *cat in current.children)
{
[stack addObject:cat];
}
}
targetCategory
是选择的根类别。提前感谢。