On 3 Nov 2012, at 00:35, Kyle Sluder <k...@ksluder.com> wrote: > On Fri, Nov 2, 2012, at 10:02 AM, Gerriet M. Denkmann wrote: >> This code: >> >> NSString *key = @"กุญแจ"; >> NSString *value = @"คุณค่า"; >> NSArray *array = @[ key, value ]; >> NSLog(@" Two nice strings: %@ %@", key, value); >> NSLog(@" Bad Array: %@", array); >> >> prints: >> >> 2012-...] Two nice strings: กุญแจ คุณค่า >> 2012-...] Bad Array: ( >> "\U0e01\U0e38\U0e0d\U0e41\U0e08", >> "\U0e04\U0e38\U0e13\U0e04\U0e48\U0e32" >> ) >> >> Bug or feature? >> Is there a way to make the array print in a more readable way? >> 10.8.2, Xcode 4.5.2 >> >> Gerriet. >> >> P.S. Same problem with dictionaries. >> >> P.P.S >> NSLog(@" Bad Array3: %s", [[array description] UTF8String]); has exactly >> the same unreadable output. > > Hopefully you're not relying on NSLog or -description producing reliable > information. No, these NSLog()s are just for debugging.
> If this is just for debugging purposes, you could swizzle -[NSArray > description] and -[NSDictionary description]. I tried a Category for NSArray like: @implementation NSArray( ReadableDescription ) - (NSString *)description { NSMutableString *m = [ NSMutableString stringWithString: @"\n(\n" ]; for( id item in self ) { [ m appendString:@"\t"]; [ m appendString: [item description] ]; [ m appendString:@"\n"]; }; [ m appendString:@")\n"]; return m; } @end Now this: NSLog(@" Bad Array: %@", array); NSLog(@" Good Array with description: %@", [array description]); prints: 2012-11-03 12:04:14.548 Writing[84446:303] Bad Array: ( "\U0e01\U0e38\U0e0d\U0e41\U0e08", "\U0e04\U0e38\U0e13\U0e04\U0e48\U0e32" ) 2012-11-03 12:04:14.548 Writing[84446:303] Good Array with description: ( กุญแจ คุณค่า ) Is there a way to make the first NSLog work? I seem to remember that it calls something like debuggingDescription, which, if not overridden calls description. I have no experience with swizzling. > Either way, file a bug. Will do. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com