Dans sa configuration par défaut (ie, my), Xcode n'est pas très utile dans sa fenêtre de débogage pour les variables, en particulier celles de la variété de collections Objective-C commune. Le débogueur semble généralement vouloir afficher la structure Obj-C sous-jacente lorsque je développe un objet, donc je regarde isa
s et la hiérarchie des classes.Contenu de variable Obj-C intelligent lors du débogage dans Xcode?
Mais ce que j'ai presque veux toujours ici est quelque chose de sémantiquement significatif pour l'objet lui-même. Par exemple. pour un NSDictionary
, je voudrais idéalement voir une liste de clés/valeurs. Si ces clés et valeurs sont, par exemple NSString
s, je veux juste voir les valeurs de chaîne, pas les objets imbriqués complexes. Idem pour NSSet
s, NSArrays
, et les octets à l'intérieur d'un NSData
. Et NSString
s, tout en obtenant généralement leur représentation de chaîne dans la colonne Résumé, sont impossibles à regarder quand ils sont longs (par exemple, un chemin qui est trop long pour tenir dans la colonne ne semble pas défiler) - quand je double- cliquez dessus, je reçois la chaîne de modèle d'affichage à la place, donc je ne peux pas sélectionner/copier non plus. J'ai récemment passé du temps dans le débogage Java d'Eclipse, et pour toutes ses failles, Eclipse connaît toutes les collections Java, et a une simple vidage sur une ligne du contenu d'une chaîne ou collection ou autre quand vous trouvez dans le débogueur.
Existe-t-il un moyen d'obtenir ceci dans Xcode? Ai-je manqué quelque chose d'évident, ou devrais-je plonger dans le système de modèle d'affichage? Je sais qu'il y a un certain soutien là-bas, car NSArrays semble obtenir un format listy spécial, NSDictionaries obtenir un résumé "2 paires clé/valeur", etc
EDIT: Il est possible de déposer dans GDB pour obtenir plus de données sur objets. Je suis découragé que po
de GDB agissant sur un NSDictionary
donne le genre de sortie awesomely utile que j'attends d'un débogueur d'interface graphique. Est-ce que ceci peut être répliqué sans changement de contexte à la console? J'apprécie énormément l'environnement Xcode, mais l'opacité presque complète des objets que j'utilise tout le temps nuit vraiment au temps de débogage. Merci.
Si je vous comprends bien, je pense que ce serait une grande caractéristique (si elle existe I voulez savoir aussi) - mais cela ne devrait pas empêcher le débogage, car la console gdb et toute sa gloire CLI sont disponibles pour vider tout ce dont vous avez besoin. :) – Eric