自从我连接了核心数据堆栈并迁移了数据库后,我的一个使用核心数据的项目进行得很顺利,直到昨天晚上才开始在托管对象模型上出现错误。
我知道它所做的就是尝试在下面这行中建立一个托管对象上下文
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Question" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];当程序试图获取问题实体时,它会在第一个视图控制器中崩溃。我声明/创建AppDelegate
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectModel;
}
NSString *path = [[NSBundle mainBundle] pathForResource:@"PSQ" ofType:@"momd"];
NSURL *momURL = [NSURL fileURLWithPath:path];
managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momURL];
//managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
return managedObjectModel;
}当我在应用委托中设置断点时,它永远不会在应用崩溃之前到达那里。它首先转到视图控制器。
奇怪的是,自从我的核心数据功能完成并正常工作以来,我已经有6周没有改变它了。
你知道我可能在做什么吗?
这是在我为NSSwitch添加NSUSerdefaults以切换是否显示进入屏幕的选项时发生的。
更新:该应用程序在iPhone版本中才会崩溃,并且在iPad中可以很好地解决托管对象问题。在managedObjectContext处导致流出错的.xib文件中会有什么不同
发布于 2012-03-01 21:35:30
好了,把它修好了。
事实证明,不知何故,应用程序代理在我的iphone笔尖上被重新连接了。我猜这就是Xcode试图告诉我的,当它在托管对象上下文的应用程序委托之前命中mainViewController时。
我将类重新设置为UIApplication,然后将委托连接到IB中的应用程序委托,一切都很正常。
https://stackoverflow.com/questions/9516045
复制相似问题