首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到实体名称的NSManagedObjectModel

找不到实体名称的NSManagedObjectModel
EN

Stack Overflow用户
提问于 2010-07-28 05:50:29
回答 6查看 14.3K关注 0票数 20

这是toggleAddProject方法的代码,核心数据代码几乎与在苹果的CoreDataBooks示例中找到的代码相同,但是当我单击添加按钮时,应用程序崩溃,entityForName: could not locate an NSManagedObjectModel for entity name 'Project'在以newProjectController.project开头的行上

代码语言:javascript
复制
-(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];
}

一切都已综合完成,Project实体存在。我搞不懂它为什么会崩溃。大多数人似乎能够通过在方法本身或viewDidLoad中插入以下代码来修复此错误:

代码语言:javascript
复制
if (managedObjectContext == nil) 
{ 
    managedObjectContext = [(CoreDataBooksAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
}

当为我的应用程序代理修改时,这没有什么不同。谢谢你的帮助。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-07-29 03:40:44

此错误只有几个可能的来源:

实体名称中的

  1. 类型。
  2. Nil托管对象上下文对象。
  3. 未能将包含实体的模型添加到上下文使用的永久存储区。
  4. 无法将正确的永久存储添加到上下文本身。
票数 40
EN

Stack Overflow用户

发布于 2011-09-03 01:53:17

当我有几个不同的NSManagedObjectContext时,我遇到了这个问题。调试它的快速方法是检查不同的连接位,并确保在调用上下文之前列出我的实体。

代码语言:javascript
复制
NSLog(@"Context: %@",context);
NSLog(@"PS Coord : %@",context.persistentStoreCoordinator);
NSLog(@"MOM : %@", context.persistentStoreCoordinator.managedObjectModel);
NSLog(@"Entities : %@",[[context.persistentStoreCoordinator.managedObjectModel entities] valueForKey:@"name"]); 
票数 23
EN

Stack Overflow用户

发布于 2010-07-28 09:13:01

使用调试器并确认您的模型不为空。这是导致此错误的最常见原因。如果不是nil,则查找实体名称中的拼写错误。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3348333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档