Trabalhando com o mesmo NSManagedObjectContext em várias guias

Tenho um controlador de barra de guias com diferentes controladores de exibição, todos usando o mesmo contexto de objeto gerenciado, sendo configurado da seguinte maneira:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

RootViewController *rootVC = [[RootViewController alloc] initWithStyle:UITableViewStyleGrouped];
rootViewController.managedObjectContext = self.managedObjectContext;
UINavigationController *rootNavCon = [[UINavigationController alloc] initWithRootViewController:rootVC];
[rootVC release];

SettingsTableViewController *settingsVC = [[SettingsTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
settingsVC.managedObjectContext = self.managedObjectContext;
UINavigationController *settingsNavCon = [[UINavigationController alloc] initWithRootViewController:settingsVC];
[settingsVC release];

tabBarController = [[UITabBarController alloc] init];
NSArray *controllers = [NSArray arrayWithObjects:rootNavCon, settingsNavCon, nil];
tabBarController.viewControllers = controllers;

[self.window addSubview:tabBarController.view];
[self.window makeKeyAndVisible];

return YES;

}

A idéia é semelhante ao código de exemplo Receitas, se houver outra guia chamada Configurações que ofereça uma opção para gerenciar os objetos Categoria. O problema é que, se você navegar para a visualização em que o usuário pode selecionar a categoria, mas for para a guia configurações e excluir, adicionar ou editar uma categoria, ao retornar à guia Receitas, as alterações não serão refletidas imediatamente. Assim, selecionar uma categoria excluída geraria uma exceção.

Qual é a melhor maneira de lidar com isso? Eu estava pensando em configurar uma NSNotification para alertar os modos de exibição sempre que uma mudança importante ocorresse, mas não tinha certeza se havia uma maneira melhor de fazer isso, como consultar [managedObjectContext hasChanges] quando uma exibição aparecesse. (Embora isso não pareça funcionar se o contexto já tiver sido salvo.)

questionAnswers(2)

yourAnswerToTheQuestion