一个核心数据模型中的多个不相关实体

时间:2010-02-11 22:06:28

标签: iphone objective-c core-data

我希望在我的数据库中拥有两个完全不相关的表,为此我在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''

我可能错过了一些基本的东西并且做了一些非常愚蠢的事情,但是在这里任何帮助都会受到赞赏。

谢谢,
保罗

1 个答案:

答案 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  
}