NSInvalidArgumentException',原因:'executeFetchRequest:错误:
Posted
技术标签:
【中文标题】NSInvalidArgumentException\',原因:\'executeFetchRequest:错误:【英文标题】: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
的实体吗?记录实体描述。
【参考方案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];正在返回错误。也许这条线引发了异常。以上是关于NSInvalidArgumentException',原因:'executeFetchRequest:错误:的主要内容,如果未能解决你的问题,请参考以下文章