ottengo il seguente errore quando si tenta di aggiungere un record:Grave Applicazione Errore nei dati di core con fetchedResultsContainer
errore dell'applicazione grave. L'eccezione è stata rilevata durante l'elaborazione di Modifica dati principali . Questo è di solito un errore all'interno di un osservatore di NSManagedObjectContextObjectsDidChangeNotification. L'indice 0 è valido con userInfo (null)
E questo è tutto. Metto i punti di interruzione in tutti i metodi di delegato Recuperati con Resontainer che ho implementato, ma non si rompe nulla.
ho rintracciato giù a:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"titleFirstLetter" cacheName:@"Root"];
"sectionNameKeyPath" è il problema. "titleFirstLetter" è una proprietà temporanea che ho creato un getter per la sottoclasse NSManagedObject.
Ecco il getter:
-(NSString *)titleFirstLetter
{
[self willAccessValueForKey:@"titleFirstLetter"];
NSString *aString = [[self valueForKey:@"title"] uppercaseString];
NSString *stringToReturn = [aString substringWithRange:[aString rangeOfComposedCharacterSequenceAtIndex:0]];
[self didAccessValueForKey:@"titleFirstLetter"];
return stringToReturn;
}
quando cambio la sectionNameKeyPath a zero, funziona, ma ovviamente non è quello che voglio. Funziona anche quando ho un titolo già compilato per il mio modello, in modo che titleFirstLetter non restituisca nil, anche se questo non sembra essere il problema. Se trasformo la stringa in qualcosa di arbitrario se è nulla, si blocca ancora.
Qualche idea di cosa c'è qui?
AGGIORNAMENTO: Se utilizzo il titolo in sectionNameKeyPath anziché nella proprietà transiente, non si blocca, ma ovviamente inserisce ogni elemento nella propria sezione. Quindi è in qualche modo correlato alla proprietà transitoria ...
UPDATE2: Un po 'di hacking preliminare con l'uso di una proprietà persistente invece di transiente, e nessun'altra modifica, sembra funzionare bene, quindi questo sembra essere un bug. Ho un bug report aperto: # 8553064
UPDATE3: Beh, grattalo. L'uso di un attributo persistente non ha fatto alcuna differenza. Sono un po 'alla fine dei colpi ora.
Grazie!
Salvato il mio bacon! Grazie! Dove hai aggiunto reloadRowsAtIndexPaths: withRowAnimation :? –
molto grazie. questo problema mi infastidisce per molto tempo. – derjohng