Ios 核心数据的NSEntityDescription创建中的EXC\u错误访问
我正在从一本基于iOS4的书中学习CoreData,因此,实现书中的示例代码时,我正在将代码迁移到iOS5(使用故事板和ARC)。 我还实现了iOS4代码,它工作得很好,但是在iOS5版本中,当我从模型对象的名称中获得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
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