• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

Value Transformer wird nicht verwendet

madmaurice

Jamba
Registriert
05.03.11
Beiträge
59
ich versuche mich gerade an meiner ersten Core Data Anwendung und möchte unter anderem ein Datum pro Datensatz in einer NSTableView in einem ganz bestimmten Format darstellen. ich habe die Spalte mit dem passenden Feld des Datensatz gebindet und das funktioniert auch ohne Probleme. Dann habe ich eine subclass der NSValueTransformer mit den Methoden transformedValueClass, allowsReverseTransformation und transformedValue implementiert, das setValueTransformer:forName: in die applicationDidFinishLaunching gesteckt und den angegebenen Namen als Value Transformer bei dem entsprechenden Binding angegeben. Allerdings hat sich die Ausgabe kein bisschen verändert. habe noch ein NSLog in die transformedValue gesteckt, was allerdings nicht ausgegeben wird. Daher frag ich mich warum der Value Transformer nicht genutzt wird obwohl er angegeben wurde?

Code:
@implementation DateValueTransformer

- (id)init{
    self = [super init];
    if (self) {
        // Initialization code here.
    }
    
    return self;
}


+ (Class) transformedValueClass {
    return [NSString class];
}


+ (BOOL) allowsReverseTransformation {
    return NO;
}


+(id)transformedValue:(id)value {
    if(value == nil) return nil;
    
    NSDate* d = value;
    NSString* dateString = [d descriptionWithCalendarFormat:@"%d.%m.%Y %H:%i" timeZone:nil locale:nil];
    NSLog(@"%@",dateString);
    return dateString;
}


@end
 
Die Methode transformedValue: muss eine Instanzmethode sein, keine Klassenmethode.

MacApple
 
dann war das tutorial was ich hatte falsch^^ dankö probier ich gleich mal aus.

EDIT: funktioniert.