448 votes

Comment imprimer la méthode nom et numéro de ligne et désactiver conditionnellement NSLog ?

J’ai fais un exposé sur le débogage dans Xcode et souhaitez obtenir plus d’informations sur l’utilisation efficace de NSLog.

En particulier, j’ai deux questions :

  • est-il possible de facilement NSLog nom de la méthode actuelle / numéro de ligne ?
  • y a-t-il un moyen de « désactiver » NSLogs tous facilement avant de compiler pour la publication du code ?

597voto

diederikh Points 17459

Voici quelques macros utiles autour de NSLog, j’utilise beaucoup :

La macro DLog est utilisée pour sortir seulement lorsque la variable DEBUG est définie (-/DDEBUG dans C des projets des indicateurs pour la configuration de débogage).

ALog sortira toujours de texte (comme le NSLog régulière).

La sortie (par exemple ALog (@"Hello world")) ressemblera à ceci :

141voto

Lee Whitney Points 3570

J'ai pris DLog et Analogique à partir de ci-dessus, et a ajouté ULog qui soulève un UIAlertView message.

Pour résumer:

  • DLog sera sortie comme NSLog uniquement lorsque la variable DEBUG est réglé
  • ALog toujours sortie comme NSLog
  • ULog montrera les UIAlertView uniquement lorsque la variable DEBUG est réglé
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [%d] " fmt), __JOLI_FONCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
#define ALog(fmt, ...) NSLog((@"%s [%d] " fmt), __JOLI_FONCTION__, __LINE__, ##__VA_ARGS__);
#ifdef DEBUG
# define ULog(fmt, ...) { UIAlertView *alerte = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s\n [%d] ", __JOLI_FONCTION__, __LINE__] message:[NSString stringWithFormat:esf, ##__VA_ARGS__] délégué:néant cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alerte show]; }
#else
# define ULog(...)
#endif

C'est à quoi il ressemble:

Debug UIAlertView

+1 Diederik

74voto

stefanB Points 27796
<pre><code></code><p>Sorties du fichier nom, numéro de ligne et nom de la fonction :</p><pre><code></code></pre><p><code></code><code></code>indique le nom de la fonction sympa, dans le cacao qu’ils se ressemblent.</p><p>Je ne suis pas sûr de ce qu’est la bonne façon de désactivation NSLog, j’ai fait :</p><pre><code></code></pre><p>Et aucune sortie de journalisation est apparu, cependant je ne sais pas si cela n’a aucun effet secondaire.</p></pre>

20voto

Ici une grande collection de débogage constantes que nous utilisons. Profitez.

19voto

Rodrigo Points 2692

Il y a un nouveau truc qui ne donnent aucun réponse. Vous pouvez utiliser à la place . Cela vous donnera un journal propre :

Avec `` vous obtenez ce genre de choses :

Mais avec `` vous obtenez seulement :

Copiez le code suivant

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