Сделав изрядное количество Google и посмотрев здесь, я считаю, что следующее не может быть сделано. Я интересуюсь, почему это не может быть сделано, и люди лучшие обходные пути, я предлагаю мой ниже.
Я использую простую модель сотрудника отдела <---- >>, в которой как атрибут имени, так и объект сотрудника также имеют атрибут timeWorked.
Проблема
Я хотел бы связать таблицу с первым столбцом, отображающим имя departement.name, и вторым столбцом, отображающим отдел. @ Sum.employees.timeWorked. Попытка сделать это приводит к ошибке:
[<_NSFaultingMutableSet 0x1d5e50> addObserver:forKeyPath:options:context:] is not supported. Key path: timeWorked
Cannot remove an observer <NSTableBinder 0x1a9280> for the key path "employees.timeWorked" from <Depatement 0x1faf40> because it is not registered as an observer.
Однако привязка к Department.employees. @ Count работает (но я хочу больше!).
Другие обсуждения
Вот еще одна тема с такой же проблемой: nstablecolumn-binding-using-collection-operator-like-sum
И еще: отношение какао-привязки-ко-многим-конец-ко-многим
Мой обходной путь
Мое решение этой проблемы состоит в том, чтобы создать атрибут для Подразделения, который выполняет сумму:
-(NSNumber *)departmentHours {
return [self valueForKeyPath:@"employees.@sum.timeWorked"]; }
и затем просто привязать к нему.
Это только немного больше кода для добавления этих атрибутов, когда я хочу выполнить какое-то сопоставление / агрегирование данных, но я чувствую, что было бы более элегантно иметь возможность связываться с
отдел. @ sum.employees.timeWorked.
Есть идеи ?? Причины, почему это не работает? Лучшие обходные пути?
Приветствия Все