I am using a CoreDataTableViewController from the Stanford course cs193p, and in my viewWillAppear I call
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.dataBase.managedObjectContext
sectionNameKeyPath:nil
cacheName:nil];
which on some random occasions makes my app freeze (it doesn't crush, it just freezes). in the CoreDataTableViewController the setter makes a call [self performFetch], which looks like this:
- (void)performFetch
{
if (self.fetchedResultsController) {
if (self.fetchedResultsController.fetchRequest.predicate) {
if (self.debug) NSLog(@"[%@ %@] fetching %@ with predicate: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd), self.fetchedResultsController.fetchRequest.entityName, self.fetchedResultsController.fetchRequest.predicate);
} else {
if (self.debug) NSLog(@"[%@ %@] fetching all %@ (i.e., no predicate)", NSStringFromClass([self class]), NSStringFromSelector(_cmd), self.fetchedResultsController.fetchRequest.entityName);
}
NSError *error;
NSLog(@"before");
[self.fetchedResultsController performFetch:&error];
NSLog(@"after");
if (error) NSLog(@"[%@ %@] %@ (%@)", NSStringFromClass([self class]), NSStringFromSelector(_cmd), [error localizedDescription], [error localizedFailureReason]);
} else {
if (self.debug) NSLog(@"[%@ %@] no NSFetchedResultsController (yet?)", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
}
[self.tableView reloadData];
}
and the line it get stuck on is
[self.fetchedResultsController performFetch:&error];
any suggestions?