I'm dealing with deeply nested NSArray's and NSDictionary's and it's very time开发者_如何学Python consuming to say the least. [data objectatindex:0] valueForKey:@"blah"] etc etc
Does anyone know of a nice iOS category to recursively log the structure, highlight the type and show the values?
Might be asking a bit much but you never know :)
Hmm. Simple
NSLog( @"%@", dictionaryYouWantToPrint );
outputs following result for me:
{
id = 1;
matchCount = 0;
matchPattern = abcdef;
number = "123456";
sessionID = 5;
status = Unknown;
timerStart = 1367229348;
}
Maybe like this?
for (id key in dictionary) {
NSLog(@"key: %@, value: %@ \n", key, [dictionary objectForKey:key]);
}
but i can't think of any nice way of getting the output beautiful except copy & paste it into a jsonFormatter (for example)
EDIT: @Andrey Starodubtsev has the solution for XCode > 5.x below:
NSLog( @"%@", dictionaryYouWantToPrint );
Maybe you can use block after iOS5, like
[anArray enumerateObjectsUsingBlock:^(id object, NSUInteger index, BOOL *stop) {
NSLog (@"object->%@",object);
}];
[aDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id object, BOOL *stop){
NSLog(@"key->%@, value-> %@",key,object);
}];
This will print in console without NSLog.
During debugging, when your breakpoint is below your dictionary, you can type in console
NSDictionary * myDict = ...;
po myDict
and you will get printed dictionary in console.
You can even cast objects to another types in console:
精彩评论