2013-03-26 2 views
0

У меня есть следующие модели основные данные:Принеси ко многим NSSets из каждого результата и вычислить сумму

Data Model

Я выборки объектов из PbsRow в зависимости от выбора пользователя (пользователь может выбрать временные рамки, которые сохраняются в jahr (год) и monat (месяц)). После получения запроса у меня есть NSArray с несколькими экземплярами PbsRow. То, что я хотел бы сделать, - вычислить сумму всех объектов WarengruppeVK (например, для netto), которые принадлежат каждому объекту PbsRow. Я пытался делать это, valueForKeyPath, но это не похоже на работу для меня :-(.

Любая помощь будет принята с благодарностью. Заранее спасибо!

ответ

0

Так что, если я правильно понимаю, вы хотите ? все существующие WarengruppeVK-s в этом случае просто сделать NSFetchRequest, установить объект в WarengruppeVK и оставить предикат nil

Надеется, что это помогает

EDIT:.!

В этом случае вы можете просмотреть полученные данные с помощью for, и каждый объект должен иметь свойство NSSet, называемое warengruppeVK, содержащее все его WarengruppeVKs.

+0

Нет, не все из них. Я просто хочу, чтобы WarengruppeVKs принадлежали PbsRows, где, например, «jahr» - 2012. Я уже правильно набираю PbsRows, теперь мне нужны соответствующие наборы WarengruppeVks. – gasparuff

+0

См. Edit ... – Levi

+0

Я не знаю, если это лучший способ, у меня около 3000-4000 объектов в моем массиве, и каждый объект имеет NSSet WarengruppeVKs ... Но я попробую. – gasparuff

0

Вы должны свободно относиться к подклассам управляемого объекта как подклассы под вашим контролем. Научите их новым трюкам, например, отвечая на год.

// PbsRow.h 
- (NSInteger)year; 

// PbsRow.m 
- (NSInteger)year { 
    // return some function of self.jahr that you can write 
} 

Тогда ...

NSInteger warrenGroupeCount = 0; 
for (PbsRow *pbsRow in fetchResults) { 
    if ([pbsRow year] == 2012) 
     warrenGroupeCount += pbsRow.warengruppeVK.count; 
} 
+0

Я не могу поверить, что нет другого способа сделать это. Нет ничего похожего на valueForKeyPath? – gasparuff

0

Шаг один: принести свои WarengruppeVK с выборкой запросом, включая этот предикат.

[NSPredicate predicateWithFormat:@"pbsrow IN %@", pbsRowArray]; 

Шаг второй: используйте значение для механизма ключа.

[warengruppeVKArray valueForKeyPath:@"@sum.netto"]; 
Смежные вопросы