Я знаю, что в SO есть миллион таких вопросов, но это другое, и я в тупике.
У меня есть модель данных с дюжиной сущностей. Код работал нормально. Затем я создал версию модели, добавил объект и связь, затем обновил параметр для текущей версии модели данных в файле xdatamodeld и теперь получаю NSInternalInconsistencyException при попытке доступа к новому объекту.
В своем основном VC я регистрирую контекст, координатора постоянного хранилища, управляемую объектную модель и все сущности. Все выглядит так, как я и ожидал, включая объект, к которому я пытаюсь получить доступ.
Я удалил базу данных SQLite и позволил Core Data воссоздать ее и увидеть таблицу с правильными типами столбцов.
Все выглядит правильно.
Вот код получения:
- (void)fetchMissions {
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Mission" inManagedObjectContext:self.managedObjectContext];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"title" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setEntity:entity];
[request setSortDescriptors:sortDescriptors];
NSError *error = nil;
missionsArray = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
}
Вот результат:
NSLog(@"Entities : %@",[[self.managedObjectContext.persistentStoreCoordinator.managedObjectModel entities] valueForKey:@"name"]);
Entities : (
Character,
CharacterClass,
CharacterCondition,
CharacterObjective,
CharacterPerception,
Condition,
Mission,
Objective,
Perception,
PlayerCharacter,
Scoreboard
)
Я также вижу детали объекта Mission, когда распечатываю всю управляемую объектную модель с помощью:
NSLog(@"MOM : %@", self.managedObjectContext.persistentStoreCoordinator.managedObjectModel);
Сущность очень проста... 3 столбца, два из которых текст/строка, а один - целое число. Описание объекта в редакторе модели соответствует определению таблицы в SQLite.
Что мне не хватает??