Search code examples
objective-ccocoa-touchcollectionsnsset

Quick way to sum a property of all objects within an NSSet?


I thought there was a way to quickly ask a NSSet to poll its members and return a sum of say an NSInteger property in each of its objects, but I may very well be confusing this with the Mac OS X side of things. Does this exist in Cococa Touch?

The closest thing I can find is objectEnumerator, whereby I suppose I could rifle through each object and increment my own variable. Does the better way exist?


Solution

  • If you're trying to find the sum of a given property (theIntegerPropertyToSum) for each member of an array/set-derived class that's KVC-compliant (theSet), you can do the following:

    NSNumber* theSum = [theSet valueForKeyPath:@"@sum.theIntegerPropertyToSum"];