не мог определить местоположение NSManagedObjectModel для имени объекта

Это - код для 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]; 
}

При изменении для моего делегата приложения это не имеет никакого значения. Спасибо за любую справку.

20
задан WrightsCS 16 December 2011 в 21:12
поделиться

3 ответа

У этой ошибки есть только несколько возможных источников:

  1. Опечатка в имени объекта.
  2. Отсутствует объект контекста управляемого объекта.
  3. Неспособность добавить модель, содержащую объект, в постоянное хранилище, используемое контекстом.
  4. Неспособность добавить правильное постоянное хранилище в сам контекст.
40
ответ дан 29 November 2019 в 22:42
поделиться

Используйте отладчик и убедитесь, что ваша модель не является nil. Это наиболее распространенная причина данной ошибки. Если она не nil, то поищите опечатку в имени сущности.

3
ответ дан 29 November 2019 в 22:42
поделиться

Документация Apple дает хорошую информацию по отладке ошибки entityForName: could not locate an NSManagedObjectModel for entity name 'Foo'.

Посмотрите этот раздел руководства по программированию основных данных.

2
ответ дан 29 November 2019 в 22:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: