46 votes

Embellissez NSLog de NSArray & NSDictionary

J'ai affaire à des NSArray et NSDictionary profondément imbriqués et cela prend pour le moins beaucoup de temps. [data objectatindex:0] valueForKey:@"blah"] etc etc.

Quelqu'un connaît-il une belle catégorie iOS pour enregistrer de manière récursive la structure, mettre en évidence le type et afficher les valeurs ?

Peut-être demander un peu trop mais on ne sait jamais :)

134voto

darkmist Points 2023

Hmm. Simple

 NSLog( @"%@", dictionaryYouWantToPrint );

génère le résultat suivant pour moi :

 {
    id = 1;
    matchCount = 0;
    matchPattern = abcdef;
    number = "123456";
    sessionID = 5;
    status = Unknown;
    timerStart = 1367229348;
}

57voto

Gotschi Points 1452

Peut-être comme ça ?

 for (id key in dictionary) {
    NSLog(@"key: %@, value: %@ \n", key, [dictionary objectForKey:key]);
}

mais je ne peux pas penser à un bon moyen d'obtenir une sortie magnifique, à part le copier-coller dans un jsonFormatter (par exemple)

EDIT : @Andrey Starodubtsev a la solution pour XCode > 5.x ci-dessous :

 NSLog( @"%@", dictionaryYouWantToPrint );

1voto

Martin Berger Points 321

Cela s'imprimera dans la console sans NSLog.

Pendant le débogage, lorsque votre point d'arrêt est en dessous de votre dictionnaire, vous pouvez taper dans la console

 NSDictionary * myDict = ...;

po monDict

et vous obtiendrez un dictionnaire imprimé dans la console.

Vous pouvez même caster des objets vers d'autres types dans la console :

entrez la description de l'image ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X