Знам, че има милион от тези въпроси в SO, но това е различно и съм стъписан.
Имам модел на данни с около дузина обекти в него. Кодът вървеше добре. След това направих версия на модела, добавих обект и връзка, след което актуализирах настройката за текущия модел на данни с версии във файла xdatamodeld и сега получавам NSInternalInconsistencyException при опит за достъп до новия обект.
В моя основен VC регистрирам контекста, координатора на постоянното хранилище, управлявания обектен модел и всички обекти. Всичко изглежда както бих очаквал, включително обектът, до който се опитвам да осъществя достъп.
Изхвърлих SQLite DB и оставих 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.
Какво ми липсва??