En C #, je peux utiliser le code suivant pour avoir du code qui ne s'exécute que pendant la construction du débogage, comment puis-je faire de même dans Xcode?
if #DEBUG
{
// etc etc
}
En C #, je peux utiliser le code suivant pour avoir du code qui ne s'exécute que pendant la construction du débogage, comment puis-je faire de même dans Xcode?
if #DEBUG
{
// etc etc
}
Vous pouvez utiliser
#ifdef DEBUG
....
#endif
Vous aurez besoin d'ajouter DEBUG=1
pour le projet du symbole de préprocesseur définitions dans la configuration de Débogage comme ce n'est pas fait automatiquement pour vous par Xcode.
Personnellement, je préfère faire en DEBUG=1
sur la vérification de NDEBUG=0
, puisque celle-ci implique que la valeur par défaut configuration de build est avec les informations de débogage qui vous ont explicitement éteindre, tandis que la " DEBUG=1 implique tournant sur debug uniquement code.
DEBUG est désormais défini en "mode débogage" par défaut sous Project / Preprocessor Macros. Donc, le tester fonctionne toujours sauf si vous avez un très vieux projet.
Cependant je déteste le fait qu'il gâche l'indentation du code et pas particulièrement compact. C'est pourquoi j'utilise une autre macro qui facilite la vie.
#ifdef DEBUG
#define DEBUGMODE YES
#else
#define DEBUGMODE NO
#endif
Le test de la valeur DEBUGMODE est donc beaucoup plus compact:
if (DEBUGMODE) {
//do this
} else {
//do that
}
Mon favori:
NSTimeInterval updateInterval = DEBUGMODE?60:3600;
Il existe une note technique de débogage très utile: Note technique TN2124 Mac OS X Debugging Magic http://developer.apple.com/technotes/tn2004/tn2124.html#SECENV qui contient de nombreuses informations utiles pour le débogage de vos applications.
Tony
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.