Cocoa Binding for custom class

So I was trying to use an NSArrayController to bind the contents of a property , first I tried using NSDictionary and it worked great, here's what I did:

@interface ViewController : NSViewController

@property IBOutlet ArrayController * tableCities;
@end

...

@implementation ViewController


- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSString* filePath = @"/tmp/city_test.jpeg";
    NSDictionary *obj = @{@"image": [[NSImage alloc] initByReferencingFile:filePath],
                              @"name": @"NYC",
                              @"filePath": filePath};
    NSDictionary *obj2 = @{@"image": [[NSImage alloc] initByReferencingFile:filePath],
                          @"name": @"Chicago",
                          @"filePath": filePath};
    
    NSDictionary *obj3 = @{@"image": [[NSImage alloc] initByReferencingFile:filePath],
                          @"name": @"Little Rock",
                          @"filePath": filePath};
    
    [_tableCities addObjects:@[obj, obj2, obj3]];
}

@end

Now for an NSPopUpButton, binding the Controller Key to the ArrayController and the ModelKeyPath to "name" works perfectly and the popupbutton will show the cities as I expected.

But now, instead of using an NSDictionary I wanted to use a custom class for these cities along with an NSMutableArray which holds the objects of this custom class. I'm having some trouble going about this.

Cocoa Binding for custom class
 
 
Q