импортировать .xcdatamodel в CoreData CLI - PullRequest
0 голосов
/ 26 августа 2010

У меня небольшая проблема с инструментом командной строки CoreData.Я просто создал новый проект в XCode (Core Data CLI), создал модель данных в файле .xcdatamodel и автоматически сгенерировал файл заголовка.Наконец, я изменил Код, который должен был бы загрузить Entity.

Программа компилируется без ошибок, но если я запускаю Программу, я получаю следующую ошибку

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

Вот мой код:svn: //homes.dnsalias.com/CoreDataOwnTesting или просто скопировать

svn co svn://homes.dnsalias.com:3690/CoreDataOwnTesting

У кого-нибудь есть идея, что я делаю неправильно?Спасибо за вашу помощь!Деннис

Код добавлен 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;
}

1 Ответ

0 голосов
/ 26 августа 2010

Похоже, у вас есть некоторые основные проблемы при настройке базового стека данных.А именно, первая проблема (и я на этом остановился) состоит в том, что вы пытаетесь создать экземпляр NSManagedObjectModel из NSEntityDescription.Boom.

Вы прочитали и следовали учебнику по Core Data Utility ?Вам легче следовать руководству и сообщать о проблемах, которые вы там обнаружите, чем попутывать его инструкции здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...