Skip navigation.
 
mlRe: Subclassing Catch-22
FROM : Ondra Cada
DATE : Tue Apr 26 23:54:46 2005

On 26.4.2005, at 23:45, Marco Scheurer wrote:
> 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;
> }


Or perhaps even this:

-(NSString*)bindingKeyForTableColumnIdentifier: (NSString *)identifier {
   NSString *s=[super bindingKeyForTableColumnIdentifier:identifier];
    if (s) return s;
    ... the original contents ...
}
---
Ondra Čada
OCSoftware:    <email_removed>              http://www.ocs.cz
private        <email_removed>            http://www.ocs.cz/oc

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