Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6173055
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T23:30:05+00:00 2026-05-23T23:30:05+00:00

In a table, I have 3 indexes which calls each a function. In each

  • 0

In a table, I have 3 indexes which calls each a function. In each function, there is an add button that adds data into CoreData. First 2 works, but when i press the 3rd index and press Add , this error appears.

2011-07-19 16:57:11.079 CoreDataMelaka[2704:207] * **Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1447.6.4/UITableView.m:976**
2011-07-19 16:57:11.080 CoreDataMelaka[2704: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 rows in section 0.  The number of rows contained in an existing section after the update (0) must be equal to the number of rows contained in that section before the update (0), plus or minus the number of rows inserted or deleted from that section (1 inserted, 0 deleted). with userInfo (null)****

here’s the code for 3rd class that i call

@implementation MainFoodsInfoController

@synthesize mainfoods;
@synthesize mainfoodsarray;
@synthesize fetchedResultsController;
@synthesize tableView;
@synthesize foodsbutton;
@synthesize editfoodsbutton;
@synthesize addfoodsbutton;


-(IBAction) foodslist:(id) sender 
{
    [self dismissModalViewControllerAnimated:YES];
}


-(IBAction) addmainfoods:(id)sender 
{
    NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
    AddMainFoodsController *addmainfoodsController=[[AddMainFoodsController alloc] initWithNibName:@"AddMainFoodsController" bundle:nil];
    addmainfoodsController.delegate=self;   
    addmainfoodsController.mainfoods =  [NSEntityDescription insertNewObjectForEntityForName:@"MainFoods" inManagedObjectContext:context];
    UINavigationController *navigatController=[[UINavigationController alloc] initWithRootViewController:addmainfoodsController];
    [self   presentModalViewController:navigatController animated:YES]; 
    [addmainfoodsController release];
    [navigatController release];
}


-(IBAction) editmainfoods:(id)sender 
{
    if([editfoodsbutton.title isEqualToString:@"Edit"]) 
    {
        editfoodsbutton.title=@"Done"; 
        [self.tableView setEditing:YES animated:YES];
    } 
    else 
    {
        editfoodsbutton.title=@"Edit"; 
        [self.tableView setEditing:NO animated:YES];
    }
}

-(void) addmainfoodsController:(AddMainFoodsController *)controller selectedsave:(BOOL) save 
{
    NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
    if(!save) {
        [context deleteObject:controller.mainfoods];
    } 
    NSError *error; if(![context save:&error])
    {
        NSLog(@"Unresolved error %@ %@", error, [error userInfo]); exit(-1);
    } 
    [self dismissModalViewControllerAnimated:YES];
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{
    NSInteger count = [[self.fetchedResultsController sections] count];
    if (count == 0) 
    {
        count = 1;
    }
    return count;   
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{
    NSInteger numofRows = 0;
    if ([[self.fetchedResultsController sections] count] > 0) 
    {
        id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
        numofRows = [sectionInfo numberOfObjects];
    }
    return numofRows;
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    { 
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
        cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
    }    

    // Configure the cell.
    NSManagedObject *managedObject = [fetchedResultsController objectAtIndexPath:indexPath];
    cell.textLabel.text = [[managedObject valueForKey:@"foodsname"] description];
    UIImage *pimage=[managedObject valueForKey:@"foodstableimage"]; 
    CGSize size=pimage.size; 
    CGFloat ratio = 0; if (size.width > size.height) 
    {
        ratio = 44.0 / size.width;
    } 
    else 
    {
        ratio = 44.0 / size.height;
    }
    CGRect rect = CGRectMake(0.0, 0.0, ratio * size.width, ratio * size. height);
    UIGraphicsBeginImageContext(rect.size); 
    [pimage drawInRect:rect]; 
    cell.imageView.image=UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    EditMainFoodsController *editmainfoodsController = [[EditMainFoodsController alloc] initWithNibName:@"EditMainFoodsController" bundle:nil];
    MainFoods *selectedmainfoods = (MainFoods *) [fetchedResultsController objectAtIndexPath:indexPath];
    editmainfoodsController.mainfoods= selectedmainfoods;
    UINavigationController *naviggController=[[UINavigationController alloc] initWithRootViewController:editmainfoodsController];
    [self presentModalViewController:naviggController animated:YES];
}

// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *) indexPath 
{
    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { // Delete the managed object for the given index path
        NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
        [context deleteObject:[[self fetchedResultsController] objectAtIndexPath:indexPath]];
        NSError *error; if (![context save:&error]) 
        {
            // Handle the error...
        }
    }   
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    [fetchRequest setEntity:[NSEntityDescription entityForName:@"MainFoods" inManagedObjectContext:context]];
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"foodsname" ascending:YES];
    NSArray *sortDescriptors =[[NSArray alloc] initWithObjects:sortDescriptor,nil]; 
    [fetchRequest setSortDescriptors:sortDescriptors];
    self.tableView.rowHeight=44.0;
    NSError *error=nil;
    mainfoodsarray=(NSMutableArray *)[context executeFetchRequest:fetchRequest error:&error];   
    [sortDescriptor release];
    [sortDescriptors release];
    [fetchRequest release];
    [self.tableView reloadData];     
}

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title=@"Foods Info";
    NSError *error;
    if (![[self fetchedResultsController] performFetch:&error]) {
        // Handle the error...
    }   


}

- (NSFetchedResultsController *)fetchedResultsController {
    if (fetchedResultsController != nil) {
        return fetchedResultsController;
    }

    CoreDataMelakaAppDelegate *appDelegate = (CoreDataMelakaAppDelegate *)[[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *context = [appDelegate managedObjectContext];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    [fetchRequest setEntity:[NSEntityDescription entityForName:@"MainFoods" inManagedObjectContext:context]];
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"foodsname" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
    [fetchRequest setSortDescriptors:sortDescriptors];
    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:nil cacheName:@"Root"];
    aFetchedResultsController.delegate = self;
    self.fetchedResultsController = aFetchedResultsController;
    [aFetchedResultsController release];
    return fetchedResultsController;
}    

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath {
    switch(type) {
        case NSFetchedResultsChangeInsert:
            [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
            break;
        case NSFetchedResultsChangeDelete:
            [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
            break;
    }
}

- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc. that aren't in use.
}

- (void)viewDidUnload {
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [foodsbutton release];
    [editfoodsbutton release];
    [addfoodsbutton release];
    [tableView release];
    [super dealloc];
}

@end

and here’s the add class that causes the crash. When i press add, i want this class to be called but this causes a crash, the other 2 classes had no issue only this has the issue

@implementation AddMainFoodsController

@synthesize savebutton; 
@synthesize cancelbutton; 
@synthesize delegate; 
@synthesize foodsnewname; 
@synthesize foodsnewinfo; 
@synthesize foodsnewemailid;
@synthesize foodsnewcontactno;
@synthesize foodsimage1;
@synthesize foodsimage2;
@synthesize foodsimage3;
@synthesize foodstableimage;
@synthesize mainfoods;
@synthesize tempImage;

NSInteger countaddfoods = 0;

-(IBAction) cancel:(id) sender 
{
    [delegate addmainfoodsController: self selectedsave:NO];
}

-(IBAction) save:(id)sender
{ 
    mainfoods.foodsname = foodsnewname.text; 
    mainfoods.foodsemailid = foodsnewemailid.text; 
    mainfoods.foodscontactno = foodsnewcontactno.text;
    mainfoods.foodsinfo = foodsnewinfo.text;
    [delegate addmainfoodsController: self selectedsave:YES ];
}

-(IBAction) selectimagebutton1:(id)sender
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init] ;
    imagePicker.delegate = self;
    [self presentModalViewController:imagePicker animated:YES];
    [imagePicker release];
}

-(IBAction) selectimagebutton2:(id)sender
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init] ;
    imagePicker.delegate = self;
    [self presentModalViewController:imagePicker animated:YES];
    [imagePicker release];
}

-(IBAction) selectimagebutton3:(id)sender
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init] ;
    imagePicker.delegate = self;
    [self presentModalViewController:imagePicker animated:YES];
    [imagePicker release];
}

-(IBAction) selecttableimagebutton:(id)sender
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init] ;
    imagePicker.delegate = self;
    [self presentModalViewController:imagePicker animated:YES];
    [imagePicker release];
}


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo
{
    tempImage = selectedImage;
    countaddfoods = countaddfoods + 1;

    [self setImage];
    [self dismissModalViewControllerAnimated:YES]; 
}

-(void) setImage
{
    if (countaddfoods == 1)
    {
        foodsimage1.image = tempImage;
        mainfoods.foodsimage1 = tempImage;
    }
    else if (countaddfoods == 2)
    {
        foodsimage2.image = tempImage;
        mainfoods.foodsimage2 = tempImage;
    }
    else if (countaddfoods == 3)
    {
        foodsimage3.image = tempImage;
        mainfoods.foodsimage3 = tempImage;
    }
    else 
    {
        foodstableimage.image = tempImage;
        mainfoods.foodstableimage = tempImage;
    }
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [self dismissModalViewControllerAnimated:YES];
}

- (void)viewDidLoad 
{
    [super viewDidLoad]; self.title=@"New Foods"; 
    self.navigationItem.rightBarButtonItem = savebutton; 
    self.navigationItem.leftBarButtonItem = cancelbutton;
}

- (void)dealloc 
{ 
    [savebutton release]; 
    [cancelbutton release]; 
    [foodsnewname release]; 
    [foodsnewemailid release]; 
    [foodsnewcontactno release]; 
    [foodsnewinfo release];
    [foodsimage1 release];
    [foodsimage2 release];
    [foodsimage3 release];
    [foodstableimage release];
    [mainfoods release]; 
    [tempImage release];
    [super dealloc];
} 

@end
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T23:30:07+00:00Added an answer on May 23, 2026 at 11:30 pm

    The error message tells you the problem:

    Invalid update: invalid number of rows in section 0. The number of
    rows contained in an existing section after the update (0) must be
    equal to the number of rows contained in that section before the
    update (0), plus or minus the number of rows inserted or deleted from
    that section (1 inserted, 0 deleted). with userInfo (null)**

    In your table section (0), you started with zero rows i.e. an empty section. Then you added 1 row so the section(0) row count should be 1 but numberOfRowsInSection: is returning zero.

    There are three probable causes for this problem:

    1. You didn’t freeze the tableview with beginUpdate in controllerWillChangeContent: such that the tableview tries to redraw itself before the update completes.
    2. Your numberOfRowsInSection returns the wrong row count for the section.
    3. You are inserting one managed object multiple times or you have a validate on insert/update that fails.

    Can’t tell you the actual problem without the code.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I need to create a table in MySQL that will have indexes for each
I have a sql table which have the following data, Id City Country ---
I have an html table which i bind data dynamically on the server side
I have a table which represent an object that has multiple status (approved, expired,
I have table rows of data in html being filled from a CGI application.
I have a table view which I'm using for some settings in my app.
I have table named as contacts which has nearly 1.2 million records we use
Supposing my table has 10 columns .... which columns i have to choose to
I have a script that appends some rows to a table. One of the
I have a project that adds elements to an AutoCad drawing. I noticed that

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.