Рассчитать сводку с помощью отношения CoreData - PullRequest
1 голос
/ 14 января 2012

В моем графе объектов у меня есть две сущности в классических отношениях родитель / потомок. У каждого ребенка есть несколько свойств, но одно из них меня интересует, это значение времени (хранится как NSDate).

Таким образом, у моего родительского объекта есть свойство "Сводка", которое должно быть вычисленной суммой значений времени его детей. Проще говоря: каждый ребенок хранит количество времени, я хочу, чтобы родитель отображал общее количество для всех своих детей.

У меня умеренный опыт работы с CoreData, и я могу легко придумать несколько способов достижения этого (например, было бы довольно легко определить переходное свойство для родителя, которое перечисляет дочерние сущности и добавляет итоги с помощью ивар) - но мне интересно, есть ли у CoreData более естественное и элегантное решение ...

1 Ответ

3 голосов
/ 14 января 2012

Существует два способа решения этой проблемы:
сначала - получите данные в NSSet или NSArray и используйте оператор @sum:

//assume that `childs` are NSArray of your child entities and ammount is attribute to sum
NSNumber *sum=[childs valueForKeyPath:"@sum.ammount"];

секунда использует конкретную выборку для определенного значения с добавлением NSExpressionDescription с суммой Этот путь сложнее, но лучше для больших дБ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...