Skip navigation.
 
mlRe: Subclassing Catch-22
FROM : Marco Scheurer
DATE : Tue Apr 26 23:45:54 2005

On Apr 26, 2005, at 23:17, Todd Ransom wrote:

> The code looks like this:
>
> - (NSString *)bindingKeyForTableColumnIdentifier: (NSString *)
> identifier {
>
>    NSArray *keys = [NSArray arrayWithObjects: @"name", @"notes", 
> @"status", nil];
>    NSArray *identifiers = [NSArray arrayWithObjects: @"Name", 
> @"Notes", @"Status", nil];
>
>    NSDictionary *keyForIdentifier = [dictionaryWithObjects: keys 
> forKeys: identifiers;
>
>    return [keyForIdentifier valueForKey: identifier];
> }
>
> - (BOOL) tableViewAddColumnWithIdentifier: (NSString *)identifier {
>
>    NSString *bindingKey = [self 
> bindingKeyForTableColumnIdentifier: identifier];
>
>    [create a table column, bind it, add it to a table]
>
> }
>
> The theory was that subclasses would override both methods, 
> returning the appropriate key to bind to and implementing whatever 
> specifics were required for the table column (popup button cells, 
> date formatters, etc.).
>
> It all worked fine except I wanted the subclasses to defer to super 
> for columns shared by all views.


Maybe bindingKeyForTableColumnIdentifier in subclasses needs to 
augment the dictionary of the superclass? That would be easier with a 
dictionary method you can override:

- (NSDictionary *) keyForIdentifierDictionary
{
    NSMutableDictionary *keyForIdentifier = [NSMutableDictionary 
dictionaryWithObjectsAndKeys...];
    [keyForIdentifier addEntriesFromDictionary:[super 
keyForIdentifierDictionary]];
    return keyForIdentifier;
}

marco

Marco Scheurer
Sen:te, Lausanne, Switzerland  http://www.sente.ch

Related mailsAuthorDate
mlSubclassing Catch-22 Todd Ransom Apr 26, 20:28
mlRe: Subclassing Catch-22 Marco Scheurer Apr 26, 22:05
mlRe: Subclassing Catch-22 Todd Ransom Apr 26, 22:20
mlRe: Subclassing Catch-22 Ondra Cada Apr 26, 22:32
mlRe: Subclassing Catch-22 Greg Titus Apr 26, 22:57
mlRe: Subclassing Catch-22 Marco Scheurer Apr 26, 23:09
mlRe: Subclassing Catch-22 Todd Ransom Apr 26, 23:17
mlRe: Subclassing Catch-22 Marco Scheurer Apr 26, 23:45
mlRe: Subclassing Catch-22 Ondra Cada Apr 26, 23:54
mlRe: Subclassing Catch-22 glenn andreas Apr 26, 23:57
mlRe: Subclassing Catch-22 Todd Blanchard Apr 27, 00:22
mlRe: Subclassing Catch-22 Todd Ransom Apr 27, 00:30
mlRe: Subclassing Catch-22 Ondra Cada Apr 27, 00:36
mlRe: Subclassing Catch-22 Todd Ransom Apr 27, 00:38
mlRe: Subclassing Catch-22 Marco Scheurer Apr 27, 01:03
mlRe: Subclassing Catch-22 Dan Treiman Apr 27, 01:40
mlRe: Subclassing Catch-22 Ondra Cada Apr 27, 01:47