4

应用程序在运行时崩溃。它在模拟器中运行良好,但在 iPhone 上却不行。

8 月 9 日 14:20:44 未知 Mobile[1152]:*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“executeFetchRequest:错误:获取请求必须具有实体。”

我应该寻找什么来确定为什么它在设备上中断但在模拟器上工作?

我在一个地方读到 AppDelegate 中的名称可能不正确,因为它在模拟器中不区分大小写,但对我来说看起来不错。

4

4 回答 4

2

“获取请求必须有一个实体”

您必须使用 Core Data,当您调用时[fetchRequest setEntity:entity],实体可能为零?在调试器中运行以追溯原因。

您应该从 Simulator 中删除您的应用程序,以确保您重新开始并强制 Core Data 构建您的持久存储。这可以解释为什么您在设备上看到与在模拟器中不同的行为

于 2012-08-09T18:30:54.983 回答
1

检查 CoreData 模型文件是否存在,如果您已更改它,请从设备中删除该应用程序并再次运行它。

于 2013-09-16T21:26:48.100 回答
0

确保任何时候您提及您的实体时,您的名称都是正确的。例如,我的实体名称是“锻炼”,而我不小心得到了如下所示的“锻炼”。

 NSEntityDescription *workouts = [NSEntityDescription entityForName:@"Workouts" inManagedObjectContext:_managedObjectContext];

一旦我用“锻炼”代替它,一切都很好。

于 2013-09-21T00:00:58.543 回答
0

检查您是否调用了与您在模型中定义的实体名称完全相同的名称,MyEntity例如MyAttributes

于 2018-07-02T06:50:38.250 回答