Reputation: 1778
I have a program which uses Core Data. I was kinda cheating when adding the numeric values from each entity in a loop. I read about using NSPredicate to filter the data, but I don't know how to manipulate the data or how the results are even stored. Thanks.
Upvotes: 1
Views: 2032
Reputation: 4017
You can use NSExpressionDescription to have Core Data do the summing. I used this article as a tutorial when I was doing something similar.
Upvotes: 1
Reputation: 18253
You can do it in two steps, if that fits your requirements.
NSPredicate
and keep it all in an NSArray
.Below is an example of how it can be done. To make it self-contained, a hard-coded array is used instead of Core Data:
// In reality this array would be the result of a Core Data query:
NSArray *numbers = @[@{@"number":@3},
@{@"number":@2}];
NSNumber *sum = [numbers valueForKeyPath:@"@sum.number"];
The trick here is the @sum
compound operator. You can read about it (and another couple of similar operators) here.
Upvotes: 13