我正在从一本基于iOS4的书中学习CoreData,因此,从书中实现示例代码后,我便将该代码迁移到iOS5(使用情节提要和ARC)。
我还实现了iOS4代码,并且可以完美运行,但是在iOS5版本中,当我从模型对象的名称获取EXC_BAD_ACCESS时,我得到了NSEntityDescription:

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

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Customer" inManagedObjectContext:context];

信号出现在代码的最后一行。我知道委托应该将上下文传递给viewcontroller,但是使用此代码,我可以确定上下文不是问题。

有任何想法吗?为什么我可以在这里获取EXC_BAD_ACCESS?我可以确定这行是正确的吗?

最佳答案

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

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

10-08 09:12