Это - код для toggleAddProject метода, Базовый Код данных является почти тем же, как найдено в образце CoreDataBooks Apple, однако когда я нажимаю добавить кнопку сбои приложения с entityForName: could not locate an NSManagedObjectModel for entity name 'Project'
на строке, запускающейся с newProjectController.project
-(IBAction)toggleAddProject
{
NewProjectViewController *newProjectController = [[[NewProjectViewController alloc] initWithStyle:UITableViewStyleGrouped] autorelease];
// Create a new managed object context for the new project -- set its persistent store coordinator to the same as that from the fetched results controller's context.
NSManagedObjectContext *addingContext = [[NSManagedObjectContext alloc] init];
self.addingManagedObjectContext = addingContext;
[addingManagedObjectContext setPersistentStoreCoordinator:[[fetchedResultsController managedObjectContext] persistentStoreCoordinator]];
newProjectController.project = (Project *)[NSEntityDescription insertNewObjectForEntityForName:@"Project" inManagedObjectContext:addingContext];
[addingContext release];
UINavigationController *addNewNavigationController = [[UINavigationController alloc] initWithRootViewController:newProjectController];
[self.navigationController presentModalViewController:addNewNavigationController animated:YES];
[addNewNavigationController release];
}
Все было синтезировано, объект Проекта существует. Я не могу выяснить, почему это отказывает. Большинство людей, кажется, может зафиксировать эту ошибку путем введения следующего кода или в самом методе, или в viewDidLoad:
if (managedObjectContext == nil)
{
managedObjectContext = [(CoreDataBooksAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}
При изменении для моего делегата приложения это не имеет никакого значения. Спасибо за любую справку.
У этой ошибки есть только несколько возможных источников:
Используйте отладчик и убедитесь, что ваша модель не является nil. Это наиболее распространенная причина данной ошибки. Если она не nil, то поищите опечатку в имени сущности.
Документация Apple дает хорошую информацию по отладке ошибки entityForName: could not locate an NSManagedObjectModel for entity name 'Foo'
.
Посмотрите этот раздел руководства по программированию основных данных.