Is there a way to view the key/value pairs of a NSDictionary variable through the Xcode debugger? Here's the extent of information when it is fully expanded in the variable window:
Variable Value Summary
jsonDict 0x45c540 4 key/value pairs
NSObject {...}
isa 0xa06e0720
I was expecting it to show me each element of the dictionary (similar to an array variable).
-
In the gdb window you can use
poto inspect the object.given:
NSMutableDictionary* dict = [[NSMutableDictionary alloc] init]; [dict setObject:@"foo" forKey:@"bar"]; [dict setObject:@"fiz" forKey:@"buz"];setting a breakpoint after the objects are added you can inspect what is in the dictionary
(gdb) po dict { bar = foo; buz = fiz; }Of course these are
NSStringobjects that print nicely. YMMV with other complex objects.Martin : Hi! What is gdb? What is po? Not sure to understand... Thanks for your help! :)Martin : Ok so I found out that GDB stands for GNU debugger and is in fact the debugger window of Xcode. Now I need to find what is poMartin : OK! So gdb is in fact a prompt in the Console, where you can input commands. By typing "po object_name" you got the object content printed in the console.Jason Prado : this is quite late, but you are a great, great man.From craigb -
You can right-click any object (ObjC or Core Foundation) variable and select “Print Description to Console” (also in Run->Variables View). This prints the result the obejct’s
-debugDescriptionmethod, which by default calls-description. Unfortunately,NSDictionaryoverrides this to produce a bunch of internal data the you generally don’t care about, so in this specific case craigb’s solution is better.The displayed keys and values also use
-description, so if you want useful information about your objects in collections and elsewhere, overriding-descriptionis a must. I generally implement it along these lines, to match the format of the defaultNSObjectimplementation:-(NSString *) description { return [NSString stringWithFormat:@"<%@ %p>{foo: %@}", [self class], self, [self foo]]; }From Ahruman
0 comments:
Post a Comment