Das Ändern von "momd" zu "mom" funktionierte für mich. Marcus S. Zarra Antwort arbeitete auch für mich, wenn ich die Syntax festgelegt:
managedObjectModel_ = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
obwohl ich keine Ahnung, was diese Zeile tut.
Edit: Ich habe etwas mehr Forschung und ich weiß jetzt, was die obige Zeile und warum es funktioniert/nicht funktioniert. Die obige Zeile durchsucht Ihr Projekt nach allen Modellen und fügt sie dem xcdatamodel hinzu. Dies funktioniert, wenn Sie keine versionierten Modelle verwenden. Wenn Sie jedoch in der Zukunft versionierte Modelle verwenden, wird dies alle Versionen des Modells importieren, so dass Sie sowohl das alte als auch das neue zusammen erhalten, was NICHT das ist, was Sie wollen. Also ist die Lösung, eines von zwei Dingen zu tun. Wenn Sie ein nicht-versioniert Modell verwenden Sie die folgenden Zeilen verwenden möchten, um das Modell zu greifen:
NSString *modelPath = [[NSBundle mainBundle]
pathForResource:@"DataModel" ofType:@"mom"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
Wenn Sie ein versioniert Modell (empfohlen) verwenden möchten, wählen Sie das Modell und führen Sie Design -> Datenmodell -> Add Model Version aus der Menüleiste, um ein versioniertes Modell zu erstellen. Dadurch wird automatisch die Erweiterung Ihres Modells von xcdatamodel in xcdatamodel geändert. Sobald dies geschehen ist, um die folgenden Zeilen verwenden:
NSString *modelPath = [[NSBundle mainBundle]
pathForResource:@"DataModel" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];
managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
Beachten Sie, dass der einzige Unterschied besteht darin, die ofType Parameteränderungen von @ „mom“ auf @ „momd“. Ich hoffe, dass dies verdeutlicht, was für jeden vorgeht, der CoreData.D zu verstehen versucht.
Sind Sie sicher, dass Ihr Modell vom Typ mom und nicht von Mama ist? (versioniertes vs. nicht versioniertes Modell) –