Tengo algunos problemas con core data/NSFetchedResultsController. No estoy del todo seguro de dónde está el error, ya que el mensaje es bastante vago.Core data/NSFetchedResultsController error
Tengo un problema con la inserción de más de un objeto cuando el controlador de resultados obtenidos no tiene objetos recuperados. El siguiente código se bloqueará con el siguiente error si intento insertar varios objetos sin recuperar ninguno. No se cuelga si lo uso para insertar un objeto, y no se cuelga si ya hay objetos recuperados.
El bloqueo se produce en el método de guardar. títulos en un NSArray y en este ejemplo contiene 5 cadenas.
Error grave de la aplicación. Excepción fue capturado durante el cambio de Datos Básicos procesamiento: * - [NSCFArray objectAtIndex:]: índice (4) más allá de límites (1) con userInfo (nulo) * Terminación de aplicación debido a excepción no detectada 'NSRangeException', razón : '*** - [NSCFArray objectAtIndex:]: índice (4) más allá de los límites (1)'
NSEnumerator *titleEnumerator = [titles objectEnumerator];
NSString *title;
NSMutableArray *tasks = [NSMutableArray array];
Todo *todo;
while(title = [titleEnumerator nextObject])
{
todo = (Todo *)[NSEntityDescription insertNewObjectForEntityForName:@"Todo" inManagedObjectContext:managedObjectContext];
todo.title = title;
todo.state = [NSNumber numberWithInteger:TodoStateIncomplete];
todo.priority = [NSNumber numberWithInteger:TodoPriorityNormal];
todo.timeStamp = [NSDate date];
todo.dueDate = [NSDate distantFuture];
}
NSError *error;
if(![managedObjectContext save:&error])
{
NSLog(@"Unresolved error %@ %@", error, [error userInfo]);
abort();
}
he logrado conseguir alrededor del accidente con un poco de un truco poco fiables. En el ciclo, verifico si es la primera vez. Si es que guardo. Esto actúa como si solo estuviera agregando un objeto al principio, lo que evita que se bloquee cuando agrego muchos. Esto me ayudará pero me gustaría saber por qué sucede esto, así puedo solucionarlo correctamente. –