设置:
我有几个 UITableViewControllers (tvc),它们都实例化了一个单独的 NSFetchedResultsController (frc)。但是,所有这些 frc-s 都使用相同的 ManagedObjectContext (moc)。
设想:
有时,我从其中一个 tvc-s 启动一些后台进程来更新数据。后台进程在单独的线程中更新数据,最后在主线程调用[moc mergeChangesFromContextDidSaveNotification:]。然后这些更改应该传播到 frc,并且应该调用 [frcDelegate controllerDidChangeContent:]。这很好用......但仅适用于关联 tvc 启动更新的 frcDelegate。(所有 tvc-s 都充当他们 frc 的 frcDelegate。)
预期行为:
因为所有的 frc-s 都绑定到同一个 moc,所以所有的 frc-s 都应该接收这些变化,并且应该为所有这些变化调用 [frcDelegate controllerDidChangeContent:]。
实际行为:
只有一个 [frcDelegate controllerDidChangeContent:] 被调用。
为什么我看到的是实际行为而不是预期?我应该如何调试这个?或者这是正确的行为?