【问题标题】:NSInvalidArgumentException', reason: 'executeFetchRequest:error:NSInvalidArgumentException',原因:'executeFetchRequest:错误:
【发布时间】:2014-03-12 22:09:46
【问题描述】:

由于未捕获的异常“NSInvalidArgumentException”,此代码导致崩溃并出现错误终止应用程序,原因:“executeFetchRequest:错误:获取请求必须具有实体。

self.devices = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
NSLog(@"point one");
NSString *yourTrip=@"trip1";
NSFetchRequest *request = [[NSFetchRequest alloc] init];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"thetrip== %@", yourTrip];

[request setEntity:[NSEntityDescription entityForName:@"thetrip" inManagedObjectContext:managedObjectContext]];

[request setPredicate:predicate];

NSError *error = nil;

NSArray *array = [managedObjectContext executeFetchRequest:request error:&error];
if (array == nil)
{
    NSLog(@"problemo");
}

崩溃具体发生在 NSError *error =nil; 之后。

【问题讨论】:

  • 还有,您有一个名为thetrip 的实体吗?记录实体描述。

标签: ios core-data


【解决方案1】:

我会改变你的

NSLog(@"problemo");

为了一个

NSLog(@"problemo %@", [error localizedDescription]);

为了获得有关错误内容的更多信息。

我认为(以及@Wain)您可能没有一个名为“thetrip”的实体(也许是theTrip?请注意Core Data 区分大小写)。带有本地化描述的日志将为您提供有关问题的一些提示。

【讨论】:

  • 属性名称是 thetrip,我记录了本地化描述,它的值是 yourtrip (trip1),但我从来没有得到 NSLog(@"problemo %@", [error localDescription]);它在那之前就崩溃了。
  • 如果模拟器中发生这种情况,请尝试从模拟器设备中删除应用程序,执行项目清理并再次尝试您的应用程序。
  • 尝试了多次,它以完全相同的方式崩溃并出现错误***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“executeFetchRequest:错误:获取请求必须有一个实体。”
  • 你能检查一下 self.devices = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];正在返回错误。也许这条线引发了异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多