me sale el siguiente error al intentar agregar un registro:error de aplicación serio en datos básicos con fetchedResultsContainer
error de aplicación seria. Se detectó la excepción durante el procesamiento de cambio de datos centrales . Esto generalmente es un error dentro de un observador de NSManagedObjectContextObjectsDidChangeNotification. El índice 0 no es válida con userInfo (nulo)
Y eso es todo. Puse puntos de interrupción en todos los métodos de delegado fetchedResultsContainer que he implementado, pero nada se rompe.
que lo rastreó a:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"titleFirstLetter" cacheName:@"Root"];
"sectionNameKeyPath" es el problema. "titleFirstLetter" es una propiedad transitoria para la que he creado un getter en mi subclase NSManagedObject.
Aquí está el captador:
-(NSString *)titleFirstLetter
{
[self willAccessValueForKey:@"titleFirstLetter"];
NSString *aString = [[self valueForKey:@"title"] uppercaseString];
NSString *stringToReturn = [aString substringWithRange:[aString rangeOfComposedCharacterSequenceAtIndex:0]];
[self didAccessValueForKey:@"titleFirstLetter"];
return stringToReturn;
}
Cuando cambio el sectionNameKeyPath a cero, funciona, pero es obvio que no lo que yo quiero. También funciona cuando tengo un título ya completado para mi modelo, por lo que titleFirstLetter no devuelve nada, aunque eso no parece ser el problema. Si hago que la cadena sea algo arbitrario si es nula, aún se bloquea.
¿Alguna idea de qué pasa aquí?
ACTUALIZACIÓN: Si utilizo el título en la sección Nombre clave clave en lugar de la propiedad transitoria, no se cuelga, pero obviamente pone cada elemento en su propia sección. Entonces, de alguna manera está relacionado con la propiedad transitoria ...
ACTUALIZACIÓN2: Algunos intentos de piratería informática con el uso de una propiedad persistente en lugar de transitoria, y ningún otro cambio, parece funcionar bien, por lo que parece ser un error. Tengo un informe de error abierto: # 8553064
ACTUALIZACIÓN3: Bien, rayar eso. Usar un atributo persistente no hizo ninguna diferencia. Estoy un poco en el final ahora.
Gracias!
¡Salvó mi tocino! ¡Gracias! ¿Dónde agregaste reloadRowsAtIndexPaths: withRowAnimation :? –
muy gracias. este problema me molesta por mucho tiempo. – derjohng