Ich habe eine Core Data Database in meiner App, die UIManagedDocument verwendet, und eine neue Version oben auf eine alte hinzugefügt.Core-Daten beim Hinzufügen eines neuen Attributs der bestehenden Entität in einer neuen Version
Die neue Version funktioniert kein Problem, wenn ich neue Entity mich hinzufügen, ohne alten Entity zu verändern. Aber sobald ich ein neues Attribut zu einer bestehenden Entität der alten Version hinzugefügt habe. UIManagedDocument ist an dem Punkt abgestürzt, an dem initWithFileURL aufgerufen wurde. So habe ich das UIManagedDocument erstellt.
UIManagedDocument *document = [[UIManagedDocument alloc] initWithFileURL:databaseURL];
self.databaseDocument = document;
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
self.databaseDocument.persistentStoreOptions = options;
Scheint, wie es bei modelByMergingModels abgestürzt genannt, während initWithFileURL
Ich weiß, das die Codezeile ist, die aufgrund der Ausnahmeunterbrechungs abgestürzt.
Wenn ich das neu hinzugefügte Attribut löschen, erstellen Sie das NSManagedObject erneut. Der Code läuft kein Problem mehr.
Hinweise, warum scheitert es? Jede Idee wird geschätzt.
Haben Sie eine neue Version der Modelldatei erstellt oder bearbeiten Sie die Modelldatei an Ort und Stelle? –
@TomHarrington Ich habe eine neue Version von Model hinzugefügt. Bitte sehen Sie einen anderen Screenshot, den ich hochgeladen habe. – John