Le client possédait à l'origine une application en ligne, mais comme il n'était pas satisfait, il nous a demandé d'en développer une nouvelle.
Maintenant que le développement est pratiquement terminé, le client a fait une nouvelle demande pour continuer les données coredata dans l'ancienne application.
J'ai donc utilisé le même ID de bundle et le même nom de bundle que l'ancienne application, j'ai copié le fichier .xcdatamodeld dans bundle请输入代码
et j'ai utilisé le même code coredata, mais l'URL de momd n'a pas pu être obtenue dans ManagedObjectModel. Après avoir vérifié le contenu du package bundle,
xcdatamodeld dans l'ancienne application a été compilé dans un tas de dossiers momd, et il y avait un tas de fichiers mod dans le dossier. Cependant, xcdatamodeld n'est pas compilé dans la nouvelle application. Pourriez-vous me dire pourquoi ce dossier n'existe pas ?
- (NSManagedObjectModel *)managedObjectModel{
if (_managedObjectModel != nil) {
return _managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"AirBoxModel" withExtension:@"momd"];
NSLog(@"modelURL is %@", modelURL);//显示nil
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"AirBoxModel.sqlite"];
NSLog(@"storeURL is %@",storeURL);
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return _managedObjectModel;
}
Je rencontre également ce problème maintenant. Le problème est survenu après avoir importé quelque chose à l'aide de cocoapodes.
Le fichier .momd n'est plus généré dans le fichier .app, donc NSManagedObjectModel ne peut pas être initialisé. Il n'est plus possible d'importer xcdatamodeld uniquement dans les phases de construction ->compiler les sources par lesquelles j'ai initialement généré le fichier modèle. le système. Il a encore son utilité, mais si on ne trouve pas la raison, il faut le faire
Hahaha, c'est compilé, merci beaucoup