 <p>After I posted my question, I tried a variant of the code the OP of the other question showed. It works for me. Here it is:</p> <pre><code>- (void) displaySelection:(Selection *)aSet { if (aSet != self.currentSelection) { self.currentSelection = aSet; NSFetchRequest *fetchRequest = [[self fetchedResultsController] fetchRequest]; NSPredicate *predicate = nil; NSEntityDescription *entity = nil; entity = [NSEntityDescription entityForName:@"DocInSelection" inManagedObjectContext:managedObjectContext]; predicate = [NSPredicate predicateWithFormat:@"selection.identifier like %@", currentSelection.identifier]; [fetchRequest setEntity:entity]; [fetchRequest setPredicate:predicate]; [NSFetchedResultsController deleteCacheWithName:@"Root"]; NSError *error = nil; if (![[self fetchedResultsController] performFetch:&amp;error]) { NSLog(@"Unresolved error %@, %@", error, [error userInfo]); abort(); } } [self.tableView reloadData]; } </code></pre>