ios - NSManagedObjectModel mergedModelFromBundles错误

标签 ios core-data nsmanagedobjectcontext nsentitydescription

我正在使用Core Data,并且在我的应用程序开始时就很难将数据导入数据库。
以下是我遵循的教程中获取的一些代码。
下面概述了我获得SIGABRT的要点。
任何建议或帮助表示赞赏
谢谢

//THIS FUNCTION IS CALLED AFTER MY APP DID FINISHING LOADING IN THE 
//    IN THE APP DELEGATE
-(void)loadData
{
    NSManagedObjectContext *context = [self managedObjectContext];

    NewModel *newModel = (NewModel *)[NSEntityDescription insertNewObjectForEntityForName:@"NewModel" inManagedObjectContext:context];

    //ADD MORE DATA TO ENTITY
}

/**
 Returns the managed object context for the application.
 If the context doesn't already exist, it is created and bound to the persistent store coordinator for the application.
 */
- (NSManagedObjectContext *) managedObjectContext {

    if (managedObjectContext != nil) {
        return managedObjectContext;
    }

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        managedObjectContext = [[NSManagedObjectContext alloc] init];
        [managedObjectContext setPersistentStoreCoordinator: coordinator];
    }
    else
    {
        NSLog(@"Error");
    }        
    return managedObjectContext;
}


/**
 Returns the managed object model for the application.
 If the model doesn't already exist, it is created by merging all of the models found in the application bundle.
 */
- (NSManagedObjectModel *)managedObjectModel {

    if (managedObjectModel != nil) {
        return managedObjectModel;
    }
/**********************************************************/    
    //  SIGABRT HAPPENS IN THE NEXT LINE OF CODE
/**********************************************************/    
    managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];    
    return managedObjectModel;
}

/**
 Returns the persistent store coordinator for the application.
 If the coordinator doesn't already exist, it is created and the application's store added to it.
 */
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (persistentStoreCoordinator != nil) {
        return persistentStoreCoordinator;
    }

    NSString *storePath = [ [self applicationDocumentsDirectory] stringByAppendingPathComponent:@"NewModel.db"];
    NSURL *storeUrl = [NSURL fileURLWithPath:storePath];

    // Put down default db if it doesn't already exist
    NSFileManager *fileManager = [NSFileManager defaultManager];
    if (![fileManager fileExistsAtPath:storePath]) {
        NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"LeagueModel" ofType:@"sqlite"];
        if (defaultStorePath) {
            [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
        }
    }

    NSError *error = nil;
    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }    

    return persistentStoreCoordinator;    
}

/**
 Returns the path to the application's Documents directory.
 */
- (NSString *)applicationDocumentsDirectory {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

最佳答案

如果您查看苹果的文档:

mergedModelFromBundles:

返回通过合并在给定捆绑包中找到的所有模型而创建的模型。
+ (NSManagedObjectModel *)mergedModelFromBundles:(NSArray *)bundles

参数
***bundles***

要搜索的NSBundle实例数组。如果指定nil,则搜索主捆绑包。
***Return Value***

通过合并捆绑中找到的所有模型而创建的模型。

您将nil传递给需要将束传递给数组的位置,这就是崩溃的原因。

关于ios - NSManagedObjectModel mergedModelFromBundles错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9247031/

相关文章:

ios - 在显示第一个 vc 之前,无法从一个 View Controller 转换到下一个 View Controller ?

iphone - 如何从实例到核心数据?

iphone NSSearchPathForDirectoriesInDomains 内存泄漏?

ios - 获取当前位置但只有一次

iphone - iOS 设备中的图标 100x100 命名约定

ios - 如何解释 XCode 核心数据中的删除规则?

ios - RestKit 核心数据映射连接与 URL 中的外键

ios - 由于 NSManagedObjectContextObjectsDidChangeNotification 导致的运行时错误

swift - 设置委托(delegate)时 NSFetchedResultController 崩溃 Swift 4、iOS 10+

swift - 如何将嵌套对象添加到核心数据中的现有对象