- 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