核心数据:移动到详细视图时获取崩溃
Posted
技术标签:
【中文标题】核心数据:移动到详细视图时获取崩溃【英文标题】:Core Data: Fetch Crashes When Moving to Detail View 【发布时间】:2010-11-20 19:26:24 【问题描述】:我的应用是多视图。主视图通向包含核心数据事物的详细视图。当我尝试在主视图中按下按钮以转到详细视图时,出现以下崩溃:
2010-11-21 01:41:01.487 CustomTableView[2253:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'executeFetchRequest:error: A fetch request must have an entity.'
Core Data 代码过去在另一个项目中运行良好,但在这个项目中崩溃了。 没有Core Data的视图没有问题
我该如何解决这个问题? 任何帮助表示赞赏
更新
这是获取代码:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
CustomTableViewAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *managedObjectContext = appDelegate.managedObjectContext;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Hero" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
【问题讨论】:
【参考方案1】:获取请求未指定其实体。缺少这样的代码:
NSEntityDescription *entity = [NSEntityDescription entityForName:@"EntityName" inManagedObjectContext:moc];
[fetchRequest setEntity:entity];
或者,如果您使用的是获取请求模板,则该模板缺少其实体说明符。
【讨论】:
是的,我的 fetchresultcontroller 方法中有这样的代码,这个方法在具有核心数据的视图中,我需要将它重新定位到其他地方吗? 你能验证用于获取请求的实体是非零吗?可能实体名称拼写错误或托管对象上下文为 nil。 实体名是一样的,但是我不确定管理对象上下文,我先复习一下 对了,有没有其他因素会导致这种情况发生? 我不知道。错误消息指出“获取请求必须具有实体”。这清楚地表明您的CustomTableView
中使用的获取请求缺少实体。记录实体——NSLog(@"%@", entity);
——应该能够确认或打折这一点。以上是关于核心数据:移动到详细视图时获取崩溃的主要内容,如果未能解决你的问题,请参考以下文章