/ / Cacau, vinculando usando operadores de coleção e propriedades de relacionamento To-Many - cacau, dados principais, construtor de interface, cacau

Cacau, ligação usando propriedades de Coletor de Operadores e de Muitos - cacau, core-data, construtor de interface, cacau-bindings

Tendo feito uma boa quantidade de google e olhando aqui, acredito que o seguinte não pode ser feito. Sou interessante por que não pode ser feito e as melhores soluções para as pessoas, ofereço o meu abaixo.

Eu uso o modelo de funcionário de departamento simples, com ambos, tendo um atributo de nome e a entidade de funcionário também tendo um atributo de timeWorked.

O problema

Gostaria de vincular uma tabela com a coluna um exibindo departement.name e a coluna dois exibindo departamento. @ Sum.employees.timeWorked. Tentar fazer isso resulta no erro:

[<_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.

No entanto, uma ligação a department.employees. @ Count funciona (mas eu quero mais!).

Outras discussões

Aqui está outro tópico aqui com o mesmo problema: nstablecolumn-binding-using-collection-operadores-like-sum

E outro: ligação de cacau-ligação-ao-fim-de-um-relacionamento-de-muitos

Minha solução alternativa

Minha solução para esse problema é criar um atributo para a entidade de departamento que execute a soma:

-(NSNumber *)departmentHours {
return [self valueForKeyPath:@"employees.@sum.timeWorked"]; }

e então simplesmente se vincular a ele.

É apenas um pouco mais de código para adicionar essesatributos quando quero fazer algum tipo de agrupamento / agregação de dados, mas acho que seria mais elegante ser capaz de vincular a departamento. @ sum.employees.timeWorked.

Alguma ideia?? Razões pelas quais isso não funciona? Melhores soluções alternativas?

Felicidades a todos

Respostas:

0 para resposta № 1

Você escreve sobre ligação a department.@sum.employees.timeWorked - no entanto, acho que você deve se vincular a department.employees.@sum.timeWorked