Странная проблема, если не сказать больше. Может ли быть так, что NSFetchedResultsController не получает уведомлений об изменениях в разделе при использовании ключевого пути имени раздела из более чем двух уровней?
Вы можете попробовать следующий обходной путь, чтобы проверить этот пункт:
Добавьте свойство только для чтения с именем "categoryName" в свой класс ShoppingItem со следующей реализацией:
- (NSString *)categoryName {
return self.Product.Category.Name;
}
Затем добавьте следующий метод в вашу реализацию ShoppingItem:
+ (NSSet *)keyPathsForValuesAffectingCategoryName {
return [NSSet setWithObjects:@"Product.Category.Name", nil];
}
Это гарантирует, что каждый раз, когда имя категории изменяется, система KVO также будет инициировать уведомление об изменении для categoryName, таким образом, мы надеемся, что NSFRC получит уведомление об изменении. Конечно, используйте categoryName в качестве sectionNameKeyPath вашего NSFRC.
Дайте мне знать, если это работает.