iOS:executeFetchRequest:错误:获取请求必须具有实体

mar*_*014 1 core-data nsfetchrequest ios

我开发了一个针对iPhone的应用程序,它使用CoreData.当我在模拟器上运行它时,一切正常,但是当我在设备上运行它时,我收到以下错误:

"*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'executeFetchRequest:error: A fetch request must have an entity.'"

我在我的代码中指定并定义了一个实体,如下所示:

NSFetchRequest *select = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"NewsStand" inManagedObjectContext:[CDHelper sharedCDHelper].managedObjectContext];
[select setEntity:entity];
NSError *error;
NSMutableArray *results = [[[CDHelper sharedCDHelper].managedObjectContext executeFetchRequest:select error:&error] mutableCopy];
Run Code Online (Sandbox Code Playgroud)

当我执行fetch以在tableView中显示存储数据库的内容时,会发生错误.

我还定义了一个managedObjectModel:

- (NSManagedObjectModel *)managedObjectModel
 {
if (__managedObjectModel != nil)
{
    return __managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"newsStandModel" withExtension:@"momd"];
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];    
return __managedObjectModel;
}
Run Code Online (Sandbox Code Playgroud)

dea*_*rne 7

加载托管对象模型时,您指定什么作为模型文件名?(某事.mom).

模拟器不区分大小写,设备.即

如果文件被调用MyModel.mom那么

NSString *path = [NSBundle mainBundle] pathForResource:@"mymodel" type:@"mom"];
NSURL *url = [NSURL fileURLWithString:string];
myModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:url];
Run Code Online (Sandbox Code Playgroud)

适用于模拟器,但不适用于设备.