Hi Andreas,
Hi Richard,
I am logging out NSDictionaries that sometimes contain NSData
instances as values. On MacOSX NSData::description is called to
determine a string that is used in the output. I don't want to
see tons of hex values for large NSData objects in the output and
therefore wrote the following category:
@implementation NSData (SRDataExtension)
- (NSString *)description
{
return [NSString stringWithFormat:@"<data of length %d>", [self
length]];
}
@end
This works great on MacOSX but not under GNUstep. It seems that
description is not called under GNUstep when a dictionary is
logged out with
NSLog(@"dic %@", dic);
Any idea?
GNUstep uses -descriptionWithLocale:
Perhaps we should change that if it's no longer used in OSX?
I have implemented
- (NSString *)descriptionWithLocale:(id)locale
{
return [NSString stringWithFormat:@"<data of length %d>", [self
length]];
}
no in my category, but this method isn't used either by NSLog(@"dic
%@", dic)!? :-(
I checked core/base/Source/NSData.m but it has no implementation
for descriptionWithLocale: either!?
AFAIU, your problem appears to be the implementation of
NSDictionary's -description method (or really -
descriptionWithLocale:indent:). This method is implemented by
converting the dictionary into a (old-style) property list and that
code converts NSData instances without invoking their -description
(or -descriptionWithLocale:) methods (for the obvious reason). So I
guess, you'll have to override NSDictionary -description for now as
well.
Wolfgang
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep