title: tableView reloadData not working
body: <p>When I call <code>[tableView reloadData]</code> the function <code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath</code> is not fired? Why?</p>
  
  <p>Here's my <strong>TableView.m</strong></p>
  
  <pre><code>@implementation TableView
  @synthesize managedObjectContext;
  @synthesize controller = _controller;
  @synthesize tableView = _tableView;
  
  - (id)initWithFrame:(CGRect)frame
  {
      self = [super initWithFrame:frame];
      if (self) {
  
      }
      return self;
  }
  -(id)init
  {
      self = [super init];
      if (self) {
          NSLog(@"%s",__PRETTY_FUNCTION__);
          self.del = [[UIApplication sharedApplication] delegate];
          self.managedObjectContext = self.del.managedObjectContext;
  
          [self performControllerFetch];
      }
      return self;
  }
  
  
  #pragma mark - Table view data source
  
  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
  {
      ...
  }
  
  - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  {
      ...
  }
  
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  {
      ...
  }
  
  - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
  
      ...
  }
  
  -(void)reloadTableView
  {
      NSLog(@"%s",__PRETTY_FUNCTION__);
  
      [self.tableView reloadData];
  
  }
  
  - (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath {
  
      NSLog(@"%s",__PRETTY_FUNCTION__);
      UITableView *tableView = self.tableView;
  
      switch(type) {
  
          case NSFetchedResultsChangeInsert:
              [tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
              break;
  
          case NSFetchedResultsChangeDelete:
              [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
              break;
  
          case NSFetchedResultsChangeUpdate:
              [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                                    withRowAnimation:UITableViewRowAnimationFade];
              break;
  
          case NSFetchedResultsChangeMove:
              [tableView deleteRowsAtIndexPaths:[NSArray
                                                 arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
              [tableView insertRowsAtIndexPaths:[NSArray
                                                 arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
              break;
      }
  }
  
  
  - (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id )sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type {
  
      switch(type) {
  
          case NSFetchedResultsChangeInsert:
              [self.tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade];
              break;
  
          case NSFetchedResultsChangeDelete:
              [self.tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade];
              break;
      }
  }
  
  
  - (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
      // The fetch controller has sent all current change notifications, so tell the table view to process all updates.
      [self.tableView endUpdates];
  }
  
  @end
  </code></pre>
  
  <p><strong>TableView.h</strong></p>
  
  <pre><code>@interface TableView : UITableView &lt;UITableViewDataSource, UITableViewDelegate, NSFetchedResultsControllerDelegate&gt;
  
  @property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
  @property (nonatomic, strong) AppDelegate *del;
  @property (nonatomic, strong) NSFetchedResultsController *controller;
  @property (weak, nonatomic) IBOutlet TableView *tableView;
  
  -(void)reloadTableView;
  -(void)performControllerFetch;
  @end
  </code></pre>