ios - NSMergeConflict para NSManagedObject con solo ManagedObjectContext
core-data nsmanagedobjectcontext (1)
Estoy trabajando con coreData, tengo una relación de uno a muchos entre carpetas y archivos.
Estoy usando solo un MOC a través de mi aplicación . Solo lo estoy pasando a diferentes
viewControllers, realizando operaciones como agregar, editar, eliminar y luego guardar.
Mi rootViewController usa NSfetchResultsController, creo carpetas usando, guardo y visualizo en mi mesa.
ahorro lo hago de esta manera
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();
}
cada vez que selecciono una carpeta, abro un archivo ViewController, mientras lo abro paso el MOC al archivo VC de esta manera
FileViewController *file = [[FileViewController alloc] initWithNibName:@"FileViewController" bundle:nil];
file.managedObjectContext = self.managedObjectContext;
file.controller = self.controller;
luego creo un archivo dentro de FileVC y lo guardo de nuevo en FileVC, de esta manera
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();
}
al hacer esto, ¿estoy usando dos MOC o un solo MOC?
En mi appdelegate.m, también probé esto
self.rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
_navigationController = [[UINavigationController alloc] initWithRootViewController:self.rootViewController];
[self.managedObjectContext setMergePolicy:NSMergeByPropertyStoreTrumpMergePolicy];
self.rootViewController.managedObjectContext = self.managedObjectContext;
A veces, cuando agrego un archivo dentro de una carpeta, aparece "NSMergeConflict for NSManagedObject"
Por favor ayuda
Saludos, Ranjit.
Estoy bastante seguro de que estás usando solo el contexto de un objeto administrado. Tendría que crear una segunda para usar una segunda. Aunque incluso si estoy en lo cierto al respecto, no tengo ningún comentario sobre NSMergeConflict, ya que estoy lidiando con eso por mi cuenta en este momento.