编辑
我在这里转发了这个:Xcode 4.3 中的核心数据和 UIManagedDocument:无法合并模型
我设法得到一个不同的错误来显示。
编辑结束
所以我正在制作一个使用共享的核心数据应用程序UIManagedDocument
。我UIManagedDocument
使用辅助类访问它DocumentHandler
。希望我能够在另一个班级中像这样使用它viewWillAppear
:
if (!self.document) {
[[DocumentHandler sharedDocumentHandler] performWithDocument:^(UIManagedDocument *document) {
self.document = document;
[self setupFetchedResultsController];
}];
}
`
- (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);
}
}
'
使用文档中的上下文,我创建了 NSManagedObjects(标准核心数据,对吧?)。问题是我在运行应用程序时收到此错误:
“无法合并具有两个不同实体的模型”
我对这个 DocumentHandler 感到头疼,我希望这是一个简单的解决方法,我太愚蠢/没有经验,看不到。
我没有制作单独版本的数据模型或任何东西,我也没有尝试迁移任何东西。我只想第一次运行这个应用程序!
谢谢阅读。