Beautify NSLog of NSArray & NSDictionary

前端 未结 4 1380
执笔经年
执笔经年 2021-01-31 02:32

I\'m dealing with deeply nested NSArray\'s and NSDictionary\'s and it\'s very time consuming to say the least. [data objectatindex:0] valueForKey:@\"blah\"] etc etc

Does

相关标签:
4条回答
  • 2021-01-31 02:49

    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 );
    
    0 讨论(0)
  • 2021-01-31 03:01

    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:

    0 讨论(0)
  • 2021-01-31 03:08

    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);
    }];
    
    0 讨论(0)
  • 2021-01-31 03:10

    Hmm. Simple

    NSLog( @"%@", dictionaryYouWantToPrint );
    

    outputs following result for me:

    {
        id = 1;
        matchCount = 0;
        matchPattern = abcdef;
        number = "123456";
        sessionID = 5;
        status = Unknown;
        timerStart = 1367229348;
    }
    
    0 讨论(0)
提交回复
热议问题