Какао, связывание с использованием свойств операторов «Собрание» и «Многие» - PullRequest
4 голосов
/ 29 февраля 2012

Сделав изрядное количество 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.

Есть идеи ?? Причины, почему это не работает? Лучшие обходные пути?

Приветствия Все

1 Ответ

0 голосов
/ 05 сентября 2012

Вы пишете о привязке к department.@sum.employees.timeWorked - однако, я думаю, что вы должны привязываться к department.employees.@sum.timeWorked

...