1

フェッチに大きな問題があり、間違いがどこにあるのか本当にわかりません。

問題は、私が自分のものをtableViewにロードするviewWillAppear関数にあり、これはコードです:

NSNotificationCenter * theCenter = [NSNotificationCenter defaultCenter];

NSFetchedResultsController *theController = [[NSFetchedResultsController alloc] initWithFetchRequest:self.fetchRequest managedObjectContext:context sectionNameKeyPath:nil cacheName:nil];

NSError *theError = nil;

theController.delegate = self;
//everything fine
self.fetchedResultsController = theController;
//program stops
if(![self.fetchedResultsController performFetch:&theError]) {
    NSLog(@"viewDidLoad: %@", theError);
}

[theCenter addObserver:self
              selector:@selector(managedObjectContextDidSave:)
                  name:NSManagedObjectContextDidSaveNotification
                object:nil];
[tableView reloadData];

fetchedResultController にはいくつかの問題がありますが、どのようなものかはわかりません。エラーメッセージは次のとおりです。

  2013-10-22 10:53:04.750 myAppName[508:c07] CoreData: error: Serious application error.  An exception was caught from the delegate of NSFetchedResultsController during a call to -controllerDidChangeContent:.  *** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0] with userInfo (null)

編集:NSFetchResultsControllerDelegate:

- (void)controllerDidChangeContent:(NSFetchedResultsController *)inController { 
     [tableView endUpdates]; 
} 
4

1 に答える 1