Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Mobile / iOS

Avoid NSFetchedResultsController crashing app when popping

0.00/5 (No votes)
7 Jan 2012CPOL 14K  
Stop app crashing with -[MyClass controllerWillChangeContent:]: message sent to deallocated instance?
Why is my app crashing with "-[MyClass controllerWillChangeContent:]: message sent to deallocated instance"?

The accepted answer is to set the NSFetchedResultsController to nil when the view disappears.

Java
-(void)viewWillDisappear:(BOOL)animated {
	self.fetchedResultsController = nil;
}


This, for me at least, resolved one problem and created a dozen more, Lists not displaying, deleting objects and alike. So I rolled back and took a closer look. The real problem occurred when I popped the UITableViewController. So taking the idea that setting the NSFetchedResultsController to nil could help, I set the NSFetchedResultsController to nil before popping the view and everything feel back into place.

Java
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
	...
	self.fetchedResultsController = nil; //This is the line that fixed issue
	[self.navigationController popViewControllerAnimated:YES];
}


I hope this tip has helped.

Rob

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)