【问题标题】:import a .xcdatamodel in CoreData CLI在 Core Data CLI 中导入 .data 模型
【发布时间】:2010-08-26 18:20:43
【问题描述】:

CoreData 命令行工具有点问题。我只是在 XCode(Core Data CLI)中创建了一个新项目,在 .xcdatamodel 文件中创建了一个数据模型并自动生成了一个头文件。最后我修改了代码,应该能够加载实体。

程序编译没有错误,但如果我运行程序我得到以下错误

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;
}

【问题讨论】:

    标签: cocoa macos core-data nsexception


    【解决方案1】:

    您在设置 Core Data Stack 的方式上似乎遇到了一些基本问题。也就是说,第一个问题(我停在那里)是您试图从 NSEntityDescription 创建一个 NSManagedObjectModel 实例。轰隆隆。

    您是否阅读并关注了Core Data Utility Tutorial?您可以更轻松地按照教程进行操作并报告您在其中发现的问题,而不是在这里照搬它的说明。

    【讨论】:

    • 是的,我有一些核心数据的基本问题,但我读过(并尝试过)。好的,我看到愚蠢的错误。但我也无法加载 xcdatamodel。新问题:如何将 xcdatamodel 添加到 NSManagedObjectModel?对不起,我的第一个问题含糊不清......
    • 那么......你的新代码是什么,你看到了什么错误?如果我们不知道出了什么问题,就无法帮助您。
    猜你喜欢
    • 1970-01-01
    • 2014-06-25
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2020-07-23
    • 1970-01-01
    相关资源
    最近更新 更多