title: Core Data Reset
body: <p>I am working with resetting my data in coreData, below is my code to reset my data in CoreData</p>
  
  <pre><code>- (void) resetApplicationModel
  {   
     __managedObjectContext = nil;
     __managedObjectModel = nil;
     __persistentStoreCoordinator = nil;
     _allPageViewController.controller = nil;
  
  
      NSError *error;
      NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"abc.sqlite"];
  
  
      if ([[self.managedObjectContext persistentStoreCoordinator] removePersistentStore:[[[self.managedObjectContext persistentStoreCoordinator] persistentStores] lastObject] error:&amp;error])
      {
          // remove the file containing the data
          if([[NSFileManager defaultManager] removeItemAtURL:storeURL error:&amp;error])
          {        
  
              //recreate the store like in the appDelegate method
              if([self.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&amp;error] == nil)
              {
                  NSLog( @"could not create new persistent store at %@ - %@", [storeURL absoluteString], [error localizedDescription]);
              }
          }
          else
          {
              NSLog( @"could not remove the store URL at %@ - %@", [storeURL absoluteString], [error localizedDescription]);
          }
  
      }
      else
      {
          NSLog( @"could not remove persistent store - %@", [error localizedDescription]);
      }
  }
  </code></pre>
  
  <p>This code works properly all my data in the table is deleted. Now when I try to add again, I get this error </p>
  
  <pre><code>CoreData: error: Serious application error.  An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:.  attempt to insert row 3 into section 0, but there are only 0 rows in section 0 after the update with userInfo (null)
  </code></pre>
  
  <p>I tried to debug this problem, and I came to know that my database is empty. But I am not understanding why. if I run the app without reset, evrything works fine.</p>
  
  <p>So please help me out.</p>
  
  <p>Here is my code about FRC delegates</p>
  
  <pre><code>- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
  {
  
          [m_tableView beginUpdates];
  
  }
  
  - (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id &lt;NSFetchedResultsSectionInfo&gt;)sectionInfo
             atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type
  {
  
      if (!m_userDrivenModelChange)
      {        
          switch(type) 
          {
              case NSFetchedResultsChangeInsert:
                  [m_tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade];
                  break;
  
              case NSFetchedResultsChangeDelete:
                  [m_tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade];
                  break;       
          }
      }
  }
  
  - (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
         atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
        newIndexPath:(NSIndexPath *)newIndexPath
  {      
          switch(type) {
              case NSFetchedResultsChangeInsert:
                  [m_tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationLeft];
                  break;
  
              case NSFetchedResultsChangeDelete:
                  [m_tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
                  break;
  
              case NSFetchedResultsChangeMove:
                  [m_tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
                  [m_tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]withRowAnimation:UITableViewRowAnimationFade];
                  break;
          }    
  }
  
  - (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
  {
  
          [m_tableView endUpdates];
  }
  </code></pre>
  
  <p>App is crashing at [m_tableView endUpdates] line.</p>
  
  <p>Regards
  Ranjit</p>