Core data 核心数据及;UIManagedDocument:Can';t使用两个名为的不同实体合并模型

Core data 核心数据及;UIManagedDocument:Can';t使用两个名为的不同实体合并模型,core-data,uimanageddocument,Core Data,Uimanageddocument,编辑 我在这里转载了以下内容: 我设法得到一个不同的错误来显示 编辑结束 因此,我正在制作一个使用共享UIManagedDocument的核心数据应用程序。我使用助手类DocumentHandler访问此UIManagedDocument。希望我能像这样在另一个类的视图中使用它 if (!self.document) { [[DocumentHandler sharedDocumentHandler] performWithDocument:^(UIManagedDocument

编辑

我在这里转载了以下内容:

我设法得到一个不同的错误来显示

编辑结束

因此,我正在制作一个使用共享
UIManagedDocument
的核心数据应用程序。我使用助手类
DocumentHandler
访问此
UIManagedDocument
。希望我能像这样在另一个类的
视图中使用它

if (!self.document) {
        [[DocumentHandler sharedDocumentHandler] performWithDocument:^(UIManagedDocument *document) {
            self.document = document;            
            [self setupFetchedResultsController];
        }]; 
    }
`

"

使用文档中的上下文,我创建了NSManagedObjects(标准的核心数据,对吧?)。问题是,我在运行应用程序时出现以下错误:

“无法合并名为的两个不同实体的模型”

我对这个DocumentHandler很感兴趣,我希望这是一个简单的解决方法,我太愚蠢/没有经验,看不到

我还没有为数据模型或任何东西制作单独的版本,也没有尝试迁移任何东西。我只想第一次运行这个应用程序


感谢阅读。

好的,我更改了.coredatamodel的名称,并将其更改回原来的名称,从而解决了这个问题(奇怪…)。但现在我得到了这样的结果:“NSInvalidArgumentException”,原因:'-[\uu NSArrayM insertObject:atIndex:]:在我的自定义初始化方法中,'[UIManagedDocument alloc]'处的对象不能为零是的,url是非零的。事实上,我在这里以一种更有效的方式重新提出了这个问题:谢谢阅读!
- (id)init {
    self = [super init];
    if (self) {
        NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] lastObject];
        url = [url URLByAppendingPathComponent:@"MyJimDocument"];

        self.document = [[UIManagedDocument alloc] initWithFileURL:url];

        // Set our document up for automatic migrations
        NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                                 [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                                 [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
        self.document.persistentStoreOptions = options;

        // Register for notifications
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(objectsDidChange:)
                                                     name:NSManagedObjectContextObjectsDidChangeNotification
                                                   object:self.document.managedObjectContext];

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(contextDidSave:)
                                                     name:NSManagedObjectContextDidSaveNotification
                                                   object:self.document.managedObjectContext];
    }
    return self;
}


- (void)performWithDocument:(OnDocumentReady)onDocumentReady {    
    void (^OnDocumentDidLoad)(BOOL) = ^(BOOL success) {
        onDocumentReady(self.document);
    };

    if (![[NSFileManager defaultManager] fileExistsAtPath:[self.document.fileURL path]]) {
        [self.document saveToURL:self.document.fileURL
                forSaveOperation:UIDocumentSaveForCreating
               completionHandler:OnDocumentDidLoad];
    } else if (self.document.documentState == UIDocumentStateClosed) {
        [self.document openWithCompletionHandler:OnDocumentDidLoad];
    } else if (self.document.documentState == UIDocumentStateNormal) {
        OnDocumentDidLoad(YES);
    }
}