J'ai un petit problème avec un outil de ligne de commande CoreData. J'ai simplement créé un nouveau projet dans XCode (Core Data CLI), créé un modèle de données dans le fichier .xcdatamodel et généré automatiquement un fichier d'en-tête. Finalement, j'ai modifié le code, qui devrait pouvoir charger l'entité.importer un .xcdatamodel dans CoreData CLI
Le programme Compile sans erreur, mais si je lance le programme i obtenir l'erreur suivante
2010-08-26 20:16:52.031 Core Data Test[866:903] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'Kunde''
*** Call stack at first throw:
(
0 CoreFoundation 0x00007fff884bbcc4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x00007fff85a630f3 objc_exception_throw + 45
2 CoreData 0x00007fff821467a9 +[NSEntityDescription entityForName:inManagedObjectContext:] + 153
3 CoreData 0x00007fff821798a1 +[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:] + 33
4 Core Data Test 0x0000000100001abf managedObjectModel + 95
5 Core Data Test 0x0000000100001b7f managedObjectContext + 156
6 Core Data Test 0x00000001000019b7 main + 47
7 Core Data Test 0x0000000100001980 start + 52
8 ??? 0x0000000000000001 0x0 + 1
)
terminate called after throwing an instance of 'NSException'
Abort trap
Voici mon code: svn: //homes.dnsalias.com/CoreDataOwnTesting ou simple à copier
svn co svn://homes.dnsalias.com:3690/CoreDataOwnTesting
Est-ce que quelqu'un a une idée de ce que je fais mal? Merci de votre aide! Dennis
code ajouté par JLN
NSManagedObjectModel *managedObjectModel();
NSManagedObjectContext *managedObjectContext();
NSManagedObjectContext *context;
int main (int argc, const char * argv[]) {
objc_startCollectorThread();
// Create the managed object context
context = managedObjectContext();
NSManagedObjectModel *kunde = managedObjectModel();
// Save the managed object context
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Error while saving\n%@",
([error localizedDescription] != nil) ? [error localizedDescription] : @"Unknown Error");
exit(1);
}
return 0;
}
NSManagedObjectModel *managedObjectModel() {
static NSManagedObjectModel *model = nil;
if (model != nil) {
return model;
}
model = [NSEntityDescription insertNewObjectForEntityForName:@"Kunde" inManagedObjectContext:context];
/*NSString *path = [[[NSProcessInfo processInfo] arguments] objectAtIndex:0];
path = [path stringByDeletingPathExtension];
NSURL *modelURL = [NSURL fileURLWithPath:[path stringByAppendingPathExtension:@"mom"]];
model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
*/
return model;
}
NSManagedObjectContext *managedObjectContext() {
static NSManagedObjectContext *context = nil;
if (context != nil) {
return context;
}
context = [[NSManagedObjectContext alloc] init];
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: managedObjectModel()];
[context setPersistentStoreCoordinator: coordinator];
NSString *STORE_TYPE = NSSQLiteStoreType;
NSString *path = [[[NSProcessInfo processInfo] arguments] objectAtIndex:0];
path = [path stringByDeletingPathExtension];
NSURL *url = [NSURL fileURLWithPath:[path stringByAppendingPathExtension:@"sqlite"]];
NSError *error;
NSPersistentStore *newStore = [coordinator addPersistentStoreWithType:STORE_TYPE configuration:nil URL:url options:nil error:&error];
if (newStore == nil) {
NSLog(@"Store Configuration Failure\n%@",
([error localizedDescription] != nil) ?
[error localizedDescription] : @"Unknown Error");
}
return context;
}
Oui, j'ai quelques problèmes de base avec les données de base, mais j'ai lu (et essayé). Ok, je vois une erreur stupide. Mais aussi je ne peux pas charger un xcdatamodel. Nouvelle question: Comment ajouter un xcdatamodel à un NSManagedObjectModel? Désolé pour ma première question inexacte ... –
Alors ... quel est votre nouveau code et quelles erreurs voyez-vous? Il est impossible de vous aider si nous ne savons pas ce qui ne va pas. –