我希望在我的数据库中拥有两个完全不相关的表,为此我在Core Data模型中定义了两个不同的实体。
除此之外,我有一个不同的ViewController使用这些实体,因此我正在以这种方式初始化两个不同的fetchedResultsController(每个ViewController中一个):
// Create the fetch request for the entity.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
// Edit the entity name as appropriate.
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event"
inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
我应该注意,MOM只在AppDelegate中基于XCode模板初始化一次。
当我在模型中只有一个ViewController和一个实体时,一切正常,但是即使我在模型中定义了第二个实体,我也无法获得第二个ViewController来初始化fetchedResultsController(再次基于XCode模板) )。我总是收到以下错误:
2010-02-11 22:02:55.078 JournalTool[3094:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'EventTag''
我可能错过了一些基本的东西并且做了一些非常愚蠢的事情,但是在这里任何帮助都会受到赞赏。
谢谢,
保罗
答案 0 :(得分:1)
可能是您传递给第二个视图控制器的managedObjectContext
实际上是nil
。在致电
[tagsViewController setManagedObjectContext:self.managedObjectContext];
确认self.managedObjectContext
不是nil
:
if(!self.managedObjectContext){
NSLog(@"invalid managedObjectContext");
// now get a valid managedObjectContext
// and pass it to your view controller
}