Je me suis très souvent posé la question suivante: Mais pourquoi ça ne marche pas ? Qu’est ce qu’il y a dans cet objet ?. Le fait est que ce n’est pas très facile de répondre à cette question avec l’interface de débogage de Xcode. Par contre dans la console de debug, il y a une commande magnifique …
Il s’agit tout simplement de po (pour Print Object). Pour l’utiliser, rien de plus simple: mettez un point d’arrêt là où vous voulez voir ce que contient un objet. Ensuite, faites un simple po monObjet. Par exemple, créons un NSMutableDictionary …
NSMutableDictionary * monDico = [[NSMutableDictionary alloc] init]; [monDico setObject:@"objet1" forKey:@"clef1"]; [monDico setObject:@"objet2" forKey:@"clef2"]; [monDico setObject:@"objet3" forKey:@"clef3"]; [monDico setObject:@"objet4" forKey:@"clef4"]; [monDico setObject:@"objet5" forKey:@"clef5"]; |
Et voilà ce que nous renvoie la console après un po monDico
(gdb) po monDico { clef1 = objet1; clef2 = objet2; clef3 = objet3; clef4 = objet4; clef5 = objet5; } |
En fait, po fait appel à la méthode description de l’objet. Toutes les classes Cocoa de base implémentent cette méthode. Pour les classes personnelles, il vous suffit d’implémenter le protocole suivant: - (NSString *)description;.

Ping : Astuces développement iPhone 5: whatis et ptype | Webd
Merci pour la super astuce !