Несколько несвязанных сущностей в одной базовой модели данных - PullRequest
1 голос
/ 12 февраля 2010

Я хочу, чтобы в моей базе данных был эквивалент двух совершенно не связанных таблиц, и для этого я определил две разные сущности в моей модели базовых данных.

В дополнение к этому у меня есть разные 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 и одна сущность в модели, однако, хотя у меня есть 2-я сущность, определенная в модели, я не могу заставить 2nd 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 Ответ

1 голос
/ 12 февраля 2010

Возможно, 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  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...