Setup:
I have several UITableViewControllers (tvc) that all instantiate a separate NSFetchedResultsController (frc). All these frc-s, though, use the same ManagedObjectContext (moc).
Scenario:
Sometimes, from one of the tvc-s, I launch some background process to update data. The background process updates the data in a separate thread and finally calls [moc mergeChangesFromContextDidSaveNotification:] on the main thread. These changes should then propagate to frc, and [frcDelegate controllerDidChangeContent:] should be called. This works fine... but only for the frcDelegate whose associated tvc initiated the update. (all the tvc-s are acting as frcDelegate for their frc.)
Expected behavior:
since all the frc-s are bound to the same moc, all the frc-s should pick up the changes, and [frcDelegate controllerDidChangeContent:] should be called for all of them.
Actual behavior:
only one [frcDelegate controllerDidChangeContent:] gets called.
Why am I seeing actual behavior instead of expected? How should I debug this? Or is this the correct behavior?