我正在使用coreData,文件夹和文件之间存在一对多的关系。
我在整个应用程序中仅使用一个MOC,只是将其传递给其他应用程序
viewControllers,执行添加,编辑,删除然后保存之类的操作。
我的rootViewController使用NSfetchResultsController,我用它创建文件夹,保存并显示在表上。
节省我这样做
NSError *error;
if (![self.managedObjectContext save:&error]) {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
然后每当我选择一个文件夹时,我都会打开一个文件ViewController,同时打开时,我会以这种方式将MOC传递给文件VC
FileViewController *file = [[FileViewController alloc] initWithNibName:@"FileViewController" bundle:nil];
file.managedObjectContext = self.managedObjectContext;
file.controller = self.controller;
然后我在FileVC内创建一个文件,然后再次以这种方式将其保存在FileVC中
NSError *error;
if (![self.managedObjectContext save:&error]) {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
这样,我是使用两个MOC还是一个MOC?
在我的appdelegate.m中,我也尝试过
self.rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
_navigationController = [[UINavigationController alloc] initWithRootViewController:self.rootViewController];
[self.managedObjectContext setMergePolicy:NSMergeByPropertyStoreTrumpMergePolicy];
self.rootViewController.managedObjectContext = self.managedObjectContext;
有时,当我在文件夹中添加文件时,会出现“ NSMergeConflict for NSManagedObject”
请帮忙
问候
兰吉特
最佳答案
我很确定您只使用一个托管对象上下文。您必须创建第二个才能使用第二个。尽管即使我是对的,但由于我现在正在处理该问题,所以我对NSMergeConflict没有任何评论。
关于ios - 具有单个ManagedObjectContext的NSManagedObject的NSMergeConflict,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19443853/