假设我有两个实体,员工和部门。一个部门与员工有多对多的关系,许多员工可以在每个部门,但每个员工只属于一个部门。我想使用NSFetchedResultsController在一个tableview中显示所有员工,这些员工是属于他们所属部门的数据。问题是我希望我的表在部门对象接收到更改时进行更新,就像员工的常规属性发生更改一样,但FetchedResultsController似乎没有跟踪相关对象。我已经得到了通过以下操作部分通过此问题:NSFetchedResultsController关系不更新
for (Employee* employee in department.employees) {
[employee willChangeValueForKey:@"dept"];
}
/* Make Changes to department object */
for (Employee* employee in department.employees) {
[employee didChangeValueForKey:@"dept"];
}
这显然是不理想的,但它确实会导致员工基于FRC的委托方法didChangeObject到被调用。我现在已经离开了真正的问题是在分选FRC是跟踪员工的对象:
NSEntityDescription *employee = [NSEntityDescription entityForName:@"Employee" inManagedObjectContext:self.managedObjectContext];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"department.someProperty" ascending:NO];
这个伟大的工程和排序正确的员工在第一时间它被称为,问题是,当我进行更改部门某些属性应该改变我的员工表的排序没有任何反应。有什么好办法让我的员工FRC跟踪关系中的变化?特别是,我只是需要一些方法让它在排序基于相关属性时更新排序。我已经浏览了一些类似的问题,但无法找到令人满意的解决方案。
不确定您是否希望设置FRC来同时观看多个实体。排列会变得很大而且很匆忙。你也可能有圆形问题。 – TechZen
我遇到过iPad需要观看多个实体来维护状态的情况。这是这个想法最初来自哪里。 –
我会赞成中学或小类。您添加到基类的复杂性越高,他就越需要管理和调试。 – TechZen