При попытке добавить запись появляется следующая ошибка:
Серьезная ошибка приложения.Исключение было обнаружено во время обработки изменений Core Data.Обычно это ошибка в наблюдателе NSManagedObjectContextObjectsDidChangeNotification.Индекс 0 недопустим с userInfo (null)
И все.Я поместил точки останова во все реализованные мной методы делегата fetchedResultsContainer, но ничего не сломалось.
Я отследил их до:
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"titleFirstLetter" cacheName:@"Root"];
"sectionNameKeyPath" - это проблема.titleFirstLetter - это временное свойство, для которого я создал метод получения в своем подклассе NSManagedObject.
Вот метод получения:
-(NSString *)titleFirstLetter
{
[self willAccessValueForKey:@"titleFirstLetter"];
NSString *aString = [[self valueForKey:@"title"] uppercaseString];
NSString *stringToReturn = [aString substringWithRange:[aString rangeOfComposedCharacterSequenceAtIndex:0]];
[self didAccessValueForKey:@"titleFirstLetter"];
return stringToReturn;
}
Когда я изменяю sectionNameKeyPath на nil, это работает, но, очевидно, не то, что я хочу.Это также работает, когда у меня уже есть название для моей модели, так что titleFirstLetter не возвращает nil, хотя это, похоже, не является проблемой.Если я сделаю строку произвольной, если она равна nil, она все равно падает.
Есть идеи, что здесь происходит?
ОБНОВЛЕНИЕ: Если я использую заголовок в sectionNameKeyPath вместо свойства transient, онне вылетает, но, очевидно, помещает каждый элемент в свой раздел.Так что это как-то связано с переходным свойством ...
ОБНОВЛЕНИЕ2: Некоторые предварительные взломы с использованием постоянного свойства вместо переходного, и никаких других изменений, кажется, работают просто отлично, так что это выглядит как ошибка.У меня открыт отчет об ошибке: # 8553064
ОБНОВЛЕНИЕ3: Ну, поцарапайте это.Использование постоянного атрибута не имеет никакого значения.Теперь я немного в конце.
Спасибо!