title: Do I need to update the table view manually after calling performFetch in a Core Data app?
body: <p>I'm new to this Core Data business.</p>
  
  <p>I got a UITableViewController hooked up with a NSFetchedResultsController. In <code>viewDidLoad</code>, I fire a request to get necessary data from the server, then use <code>[self.fetchedResultsController performFetch:&amp;error]</code> to update the table view. All works fine until that point.</p>
  
  <p>Now I want to move the data fetching stuff to another thread, so after the app received a NSArray object from the server, it performs the <code>didFinishFetchingItems</code> selector on the main thread. In that selector, I save the NSArray to the Core Data store and have the <code>fetchedResultsController</code> perform a fetch. No data show up, although a <code>NSLog</code> reveals that the data is still there (e.g. <code>[[fetchedResultsController fetchedObjects] count]</code> returns 100). I have to put a <code>[self.tableView reloadData]</code> at the end of the method to refresh the table view manually.</p>
  
  <p>My question is: What have I done wrong? Why did I need to do the table view refreshing manually? </p>