title: Why is a CoreData forceFetch required after a delete on the iPad but not the iPhone?
body: <p>When the following code is run on the iPhone (ios 3.1) the count of fetched objects <em>after</em> the delete is one less than before the delete.  But on the iPad (ios 3.2) the count remains the same.   This inconsistency was causing a crash on the iPad because elsewhere in the code, soon after the delete, fetchedObjects is called and the calling code, trusting the count, attempts access to the just-deleted object's properties, resulting in a NSObjectInaccessibleException error (see below). A fix has been to use that commented-out call to performFetch, which when executed makes the second call to fetchObjects yield the same result as on the iPhone without it. My question is:  Why is the iPad producing different results than the iPhone?  This is the second of these differences that I've discovered and posted recently.</p>
  
  <pre><code>-(NSError*)deleteObject:(NSManagedObject*)mo;
  {
  NSLog(@"\n\nNum objects in store before delete: %i\n\n",
        [[self.fetchedResultsController fetchedObjects] count]);
  
      [self.managedObjectContext deleteObject:mo];
  
      // Save the context.
      NSError *error = nil;
      if (![self.managedObjectContext save:&amp;error]) {
      }
  
  //  [self.fetchedResultsController performFetch:&amp;error];  // force a fetch
  
  NSLog(@"\n\nNum objects in store after delete (and save): %i\n\n", 
        [[self.fetchedResultsController fetchedObjects] count]);
  
      return error;
  }
  </code></pre>
  
  <p>(The full NSObjectInaccessibleException is: "Terminating app due to uncaught exception 'NSObjectInaccessibleException', reason: 'CoreData could not fulfill a fault for '0x1dcf90