Grant Christensen <mailto:[email protected]> wrote (Sunday, January 17, 2010 6:53 AM +1000):

In my window I have a NSTableView that is using an array controller to get
access to my data.  The array controller is bound to an array of
BBSMoreSpecific classes.

The problem I am having is that all of my columns bound to the fields in the
BBSMoreSpecific class show their data, but those bound to those in the base
class do not.  I am using a simple model key path of just the name of the
ivar, so aValue and anotherValue.

Can the bindings access the base class or can they only access values in the
class the array controller is directly connected to?

Of course you can. This is a basic principle of object oriented languages (unless there's scoping, but Objective-C doesn't support that). You could verify this by using a key-value path to access any of the object's NSObject properties, like -description.

I suspect that something else is wrong. Your simplistic example appears to be valid, but it's obviously not the code you're using. It time to hit the debugger....

Since you've declared these as formal properties, KVO should be accessing these properties via their accessor methods. One trick is to override the base-class getter method in your subclass like this:

@implementation BBSMoreSpecific
...
- (NSString*)aValue
{
    NSString* value = [super aValue];
    //NSLog(@"%s returning '%@'",__func__,value);
    return value;   // <-- set breakpoint here
}

Now you can set a breakpoint or log every access to that property. You shouldn't have any problem verifying if the correct messages are being sent (or not), by whom, and then work backwards from there.

--
James Bucanek

_______________________________________________

Cocoa-dev mailing list ([email protected])

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 [email protected]

Reply via email to