IPhone: basic error saving data

When I try to save an object in my underlying data model, the following error occurs:

2010-09-01 22:07:50.569 Score Card[26566:207] *** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1262.60.3/UITableView.m:904 2010-09-01 22:07:50.570 Score Card[26566:207] Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. Invalid update: invalid number of sections. The number of sections contained in the table view after the update (1) must be equal to the number of sections contained in the table view before the update (1), plus or minus the number of sections inserted or deleted (1 inserted, 0 deleted). with userInfo (null) Detected an attempt to call a symbol in system libraries that is not present on the iPhone: _Unwind_Resume called from function -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] in image CoreData. 2010-09-01 22:07:50.572 Score Card[26566:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of sections. The number of sections contained in the table view after the update (1) must be equal to the number of sections contained in the table view before the update (1), plus or minus the number of sections inserted or deleted (1 inserted, 0 deleted).' *** Call stack at first throw: ( 0 CoreFoundation 0x02661b99 __exceptionPreprocess + 185 1 libobjc.A.dylib 0x027b140e objc_exception_throw + 47 2 CoreFoundation 0x0261a238 +[NSException raise:format:arguments:] + 136 3 Foundation 0x000bae37 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116 4 UIKit 0x0033a9a6 -[UITableView(_UITableViewPrivate) _endCellAnimationsWithContext:] + 7806 5 UIKit 0x0032a75b -[UITableView insertSections:withRowAnimation:] + 56 6 Score Card 0x00003918 -[History controller:didChangeSection:atIndex:forChangeType:] + 133 7 CoreData 0x0246db81 -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:] + 2177 8 Foundation 0x0002a0e1 _nsnote_callback + 145 9 CoreFoundation 0x02639f29 __CFXNotificationPost_old + 745 10 CoreFoundation 0x025b926a _CFXNotificationPostNotification + 186 11 Foundation 0x0001fc8a -[NSNotificationCenter postNotificationName:object:userInfo:] + 134 12 CoreData 0x023a8879 -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:] + 89 13 CoreData 0x02418193 -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:] + 259 14 CoreData 0x0238b208 -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 1352 15 CoreData 0x023c4e55 -[NSManagedObjectContext save:] + 149 16 Score Card 0x000053ad -[TimeRun saveAction] + 65 17 Score Card 0x00004116 -[TimeRun countDown] + 326 18 Foundation 0x000561c9 __NSFireTimer + 125 19 CoreFoundation 0x02642f73 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 19 20 CoreFoundation 0x026445b4 __CFRunLoopDoTimer + 1364 21 CoreFoundation 0x025a0dd9 __CFRunLoopRun + 1817 22 CoreFoundation 0x025a0350 CFRunLoopRunSpecific + 208 23 CoreFoundation 0x025a0271 CFRunLoopRunInMode + 97 24 GraphicsServices 0x02f4000c GSEventRunModal + 217 25 GraphicsServices 0x02f400d1 GSEventRun + 115 26 UIKit 0x002ceaf2 UIApplicationMain + 1160 27 Score Card 0x00002998 main + 102 28 Score Card 0x00002929 start + 53 ) terminate called after throwing an instance of 'NSException 

I'm just not sure how to fix this problem. I do not insert any sections, so I am not okay here. Ideas?

EDIT:

Is this related to how I get the results? I seem to be using the key to name the section, but I don't need the sections:

 - (NSFetchedResultsController *)fetchedResultsController { if (fetchedResultsController != nil) { return fetchedResultsController; } NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Mission" inManagedObjectContext:managedObjectContext]; [fetchRequest setEntity:entity]; // Create the sort descriptors array. NSSortDescriptor *startDescriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES]; NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:startDescriptor, nil]; [fetchRequest setSortDescriptors:sortDescriptors]; // Create and initialize the fetch results controller. NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"title" cacheName:@"Root"]; self.fetchedResultsController = aFetchedResultsController; self.fetchedResultsController.delegate = self; // Memory management. [aFetchedResultsController release]; [fetchRequest release]; [startDescriptor release]; [sortDescriptors release]; return fetchedResultsController; }//end 
+4
source share
4 answers

The sectionNameKeyPath: to nil parameter fixed my problem.

+3
source

If you still need a section name. The following code works:

 - (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)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; default: break; } } 
+6
source

This indicates your problem:

Invalid update: invalid number of partitions. The number of sections contained in the table view after update (1) must be equal to the number of sections contained in the table before updating (1), plus or minus the number of inserted sections or deleted (1 inserted, 0 deleted).

After the upgrade, you are returning the wrong number of sections from 'numberOfSectionsInTableView: `. Most likely, something in the update changes the partitions, but you continue to return the old number.

+3
source

they say that you uninstall the application in your simulator, then β€œClear all build goals”, and then create and run again and again. Hope this helps

I based my answer on: "NSInternalInconsistencyException"

0
source

All Articles