pojawia się następujący komunikat o błędzie podczas próby dodania rekordu:Poważny błąd aplikacji w podstawowe dane z fetchedResultsContainer
Poważny błąd aplikacji. Wyjątek został przechwycony podczas przetwarzania danych podstawowych . Zazwyczaj jest to błąd w obrębie obserwatora NSManagedObjectContextObjectsDidChangeNotification. Indeks 0 jest nieważny z userinfo (null)
I to wszystko. Umieściłem breakpointy we wszystkich metodach delegowanych pobierającychResultsContainer, które zaimplementowałem, ale nic nie zepsuje.
I śledzone w dół do:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"titleFirstLetter" cacheName:@"Root"];
"sectionNameKeyPath" jest problemem. "titleFirstLetter" jest przejściową własnością, dla której stworzyłem getter dla mojej podklasy NSManagedObject.
Oto Getter:
-(NSString *)titleFirstLetter
{
[self willAccessValueForKey:@"titleFirstLetter"];
NSString *aString = [[self valueForKey:@"title"] uppercaseString];
NSString *stringToReturn = [aString substringWithRange:[aString rangeOfComposedCharacterSequenceAtIndex:0]];
[self didAccessValueForKey:@"titleFirstLetter"];
return stringToReturn;
}
Kiedy zmienić sectionNameKeyPath do zera, to działa, ale oczywiście nie jest to, co chcę. Działa to również, gdy mam już wypełniony tytuł dla mojego modelu, tak że titleFirstLetter nie zwraca wartości zerowej, chociaż nie wydaje się to być problemem. Jeśli zrobię ciąg znaków coś arbitralnego, jeśli jest zerowy, to nadal się zawiesza.
Każdy pomysł, co jest tutaj?
AKTUALIZACJA: Jeśli użyję tytułu w sekcji NazwaKluczKey zamiast właściwości przejściowej, to nie ulega awarii, ale oczywiście umieszcza każdy element we własnej sekcji. Więc jest w jakiś sposób związany z przejściową własnością ...
UPDATE2: Niektóre wstępne hakowanie przy użyciu trwałej właściwości zamiast przejściowej i żadnych innych zmian wydaje się działać dobrze, więc wygląda na to, że jest to błąd. Mam zgłoszenie błędu otwarte: # 8553064
UPDATE3: Cóż, zadrap się. Użycie trwałego atrybutu nie miało znaczenia. Trochę kończę na białym końcu.
Dzięki!
Uratowałem mój bekon! Dzięki! Gdzie dodałeś reloadRowsAtIndexPaths: withRowAnimation :? –
bardzo dziękuję. ten problem przeszkadza mi przez długi czas. – derjohng