Ios 核心数据的NSEntityDescription创建中的EXC\u错误访问

Ios 核心数据的NSEntityDescription创建中的EXC\u错误访问,ios,core-data,exc-bad-access,Ios,Core Data,Exc Bad Access,我正在从一本基于iOS4的书中学习CoreData,因此,实现书中的示例代码时,我正在将代码迁移到iOS5(使用故事板和ARC)。 我还实现了iOS4代码,它工作得很好,但是在iOS5版本中,当我从模型对象的名称中获得NSEntityDescription时,我得到了EXC\u BAD\u访问权限: AppDelegate *appDelegate =[[UIApplication sharedApplication] delegate]; NSManagedObjectContext *con

我正在从一本基于iOS4的书中学习CoreData,因此,实现书中的示例代码时,我正在将代码迁移到iOS5(使用故事板和ARC)。 我还实现了iOS4代码,它工作得很好,但是在iOS5版本中,当我从模型对象的名称中获得
NSEntityDescription
时,我得到了
EXC\u BAD\u访问权限

AppDelegate *appDelegate =[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext]; 

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Customer" inManagedObjectContext:context];
信号出现在最后一行代码中。我知道委托应该将上下文传递给viewcontroller,但是使用这段代码,我确信上下文不是问题所在


有什么想法吗?为什么我可以在这里获得
EXC\u BAD\u访问权限
?我可以确定这一行是正确的吗?

这似乎意味着您的实体字符串可能是错误的?为了避免崩溃,您可以使用以下方法:

NSEntityDescription *entity = [[managedObjectModel entitiesByName] 
   objectForKey:@"Customer"];

正如我所说,我正在学习核心数据,所以我不知道这种方法。使用entitiesByName方法,您说过我意识到模型中没有实体。所以问题是我更改了.xcdatamodeld文件的名称。虽然我在委托中也更改了它,但似乎如果您想更改模型文件名(并且希望应用程序能够工作XD),您必须使用这个新名称创建一个新的模型文件,正如这里所说的:现在问题终于解决了!非常感谢@Mundi