On Jul 5, 2009, at 07:43, Sebastijan Bauman wrote:

I am using NSTableView and Core Data and would like to sum numbers from two columns and show the sum in third column for every row. Like this:

http://www.shrani.si/f/3r/5h/4MNSm4Th/1/picture-2.png

what is the easiest way to do this?
is there a way to do this in Table Column Bindings / Value Transformers (like we do for @sum, @count, etc.) or maybe in xcdatamodel?

There are multiple ways of doing this, of course. Here's a fairly easy way, assuming your core data row objects are a custom subclass of NSManagedObject:

1. Add a new method to your subclass:

...
@property (readonly) int sumOf1And2; // or whatever numeric return type you want

...
- (int) sumOf1And2 {
return self.value1 + self.value2; // assuming you have custom accessors for the first 2 column values, or use 'valueForKey:' if not
}

2. Also add to your subclass a dependency on the component values:

+ (NSSet*) keyPathsForValuesAffectingSumOf1And2 {
return [NSSet setWithObjects: @"value1", @"value2", nil]; // but use the correct property names
}

This is necessary to make "sumOf1And2" properly KVO-compliant.

3. Bind your table's 3rd column to the property "sumOf1And2".

That's all it should take.

(All code written in Mail and untried.)


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to