Использование Core Data и в приложении insertMethod аварийно завершает работу и выдает исключение NSInternalInconsistencyException с сообщением об ошибке. Контекст уже имеет координатор - PullRequest
3 голосов
/ 10 февраля 2012

Я реализую основной пример данных в xcode 4.2 на insertMethod (в классе MasterViewController.m), мое приложение падает с NSInternalInconsistencyException и сообщением об ошибке: Контекст уже имеет координатор; не может заменить. может кто-нибудь из друзей сказать мне значение этого исключения и сообщение об ошибке

вставить метод, указанный ниже: -

 (void)insertNewObject
{
    detailViewControllerObj = [[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];
    detailViewControllerObj.delegate = self;
    NSManagedObjectContext *addingContext = [[NSManagedObjectContext alloc] init];
    self.managedObjectContext = addingContext;

[managedObjectContext setPersistentStoreCoordinator:[[fetchedResultsController managedObjectContext] persistentStoreCoordinator]];

 detailViewControllerObj.cust = (Customer *) [NSEntityDescription insertNewObjectForEntityForName:@"Customer" inManagedObjectContext:addingContext];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:detailViewControllerObj];

[self.navigationController presentModalViewController:navController animated:YES];

}

и приложение вылетает после выполнения

[managedObjectContext setPersistentStoreCoordinator:[[fetchedResultsController managedObjectContext] persistentStoreCoordinator]];

Любая помощь будет более заметной ..

1 Ответ

0 голосов
/ 10 февраля 2012

это означает, что во время инициализации managedObjectContext вы уже связали его с хранилищем.поэтому вам не нужно связывать его здесь снова, поэтому, если вы удалите эту строку из своего кода, ваш код будет работать нормально, поскольку шаг, который вы пытаетесь сделать, уже был выполнен на каком-то предыдущем этапе.

...