title: Coredata - "NSObjectInaccessibleException - CoreData could not fulfill a fault"
body: <p>I am new to Core data and still figuring out the nuts and bolts and this error has been bugging me for hours and I cant seem to find a solution. Any help is greatly appreciated.</p>
  
  <p>The problem is like this</p>
  
  <p>I have two views which fetch data from the server and Update the UI. I have set up the flow this way</p>
  
  <p>view1 -> Send  HTTP Req from Server - Receive Callback -> Save Data To Coredata -> Read From Core Data and display on the UI (callback and saving/reading Coredata happen in ViewController)</p>
  
  <p>view2 -> Send  HTTP Req from Server - Receive Callback -> Save Data To Coredata -> Read From Core Data and display on the UI (callback and saving/reading Coredata happen in ViewController)</p>
  
  <p>View 2 repeats this process every 3 seconds as this is a auto refresh screen.</p>
  
  <p>The problem is whenever I try to switch between views 1 and 2 real fast, it crashes the app with above error. If I wait for a few seconds on each view (wait for data to be fetched from the server), it works fine. Am I doing something wrong, what do I need to modify?</p>
  
  <pre><code>- (void) refreshData {
      [super refreshData];
      [[UserDataFactory sharedSingleton] refreshLoggedInUserDataAndRespondTo:self user:self.user];
  }
  
  - (BOOL) refreshDataCallback:(QExtendedHTTPOperation*)responseOperation {
      [self saveToCoreData: responseOperation.responseArray];
      NSMutableArray *tmp = [[NSMutableArray alloc] initWithArray:[self readFromCoreData]];
      [self setData: tmp];
      [tmp release];
      [self.tableView reloadData];
      return YES;
  }
  
  - (void) saveToCoreData:(NSArray *) responseArray{
      NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
      NSEntityDescription *entity = [NSEntityDescription entityForName:@"CoreView1" inManagedObjectContext:self.managedObjectContext];
      [fetchRequest setEntity:entity];
      [fetchRequest setReturnsObjectsAsFaults:NO];
      NSError *error;
      NSArray *items = [self.managedObjectContext executeFetchRequest:fetchRequest error:&amp;error];
      [fetchRequest release];
  
      for (NSManagedObject *managedObject in items) {
              [self.managedObjectContext deleteObject:managedObject];
      }
  
      for (int i=0; i&lt;[responseArray count]; i++) {
              CoreView1 *coreView1_ = [NSEntityDescription insertNewObjectForEntityForName:@"CoreView1" inManagedObjectContext:self.managedObjectContext];
              coreView_.id = [[responseArray objectAtIndex:i] id];    
              [self.managedObjectContext insertObject:coreView1_];
      }
      [self saveContext:self.managedObjectContext];
  }
  
  - (NSArray *) readFromCoreData{ 
      NSEntityDescription *entity = [NSEntityDescription entityForName:@"CoreView1" inManagedObjectContext:self.managedObjectContext];
      NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
      [fetchRequest setEntity:entity];
      [fetchRequest setReturnsObjectsAsFaults:NO];
      NSError *error;
      NSMutableArray *fetchedObjects = [[self.managedObjectContext executeFetchRequest:fetchRequest error:&amp;error] mutableCopy];
      [fetchRequest release];
      return [fetchedObjects autorelease];
  }
  </code></pre>
  
  <p>This is the sample code I'm using, even View2 has the same callbacks and follows the same flow.</p>
  
  <p><strong>Edit 1</strong>
  Forgot to mention this earlier, I always get the error in saveToCoreData method. Also, one more thing to note is that If I remove the code to delete objects it all works fine (I need to remove all the existing data from the table before I save the updated data). Not sure whats happening though.</p>