我正在使用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”
请帮忙
此致 兰吉特。
答案 0 :(得分:1)
我很确定你只使用一个托管对象上下文。您必须创建第二个使用第二个。虽然即使我是对的,但我对NSMergeConflict没有任何评论,因为我现在正处理这个问题。