Mac OS X. Приложение CoreData. NSTableView, управляемый NSArrayController, привязан к контексту управляемого объекта для сущности Country. Сущность Country имеет атрибут «имя» и отношение ко многим, «ветви», к сущности Branch. Сущность Branch имеет атрибут «продажи» (NSNumber).
NSTableView имеет два столбца NSTableColumns. Первый показывает название страны. Второй должен отображать общий объем продаж в этой стране по всем ее филиалам.
Значение первого столбца привязывается к объектам NSArrayController, организованным с помощью ключевого пути модели «имя». Нет проблем.
Значение второго столбца привязано к объектам NSArrayController, организованным с помощью ключевого пути модели «branch. @ Sum.sales». Это не работает. Я получаю сообщение об ошибке: «addObserver: forKeyPath: options: context:] не поддерживается. Путь к ключу: @ sum.sales»
Если вместо этого я добавлю метод totalSales в свой класс Country, и этот метод будет реализован следующим образом:
- (NSNumber *)totalSales
{
return [[self branches] valueForKeyPath:@"@sum.sales"];
}
и затем я привязываю столбец к totalSales, он работает нормально. Насколько я понимаю, документация по операторам сбора данных должна быть такой же, как простая привязка к «branch. @ Sum.sales». Я не понимаю, почему последнее не работает. Любые идеи? Я видел похожие вопросы на этом и других форумах, но пока не видел объяснения или решения.