Note that there are some explanatory texts on larger screens.

plurals
  1. POCore Data Reset
    primarykey
    data
    text
    <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>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload