E 'possibile in fase di esecuzione per rilevare se l'applicazione in esecuzione è stata compilata con debug o distribuzione.Rileva se iPhone sta eseguendo una build Debug/Distribuzione in fase di esecuzione
risposta
Nel progetto Informazioni, per una configurazione di debug, aggiungere una macro di preprocessore di "DEBUG" (nella sezione GCC 4.2 - Preelaborazione).
Nel codice è possibile utilizzare #ifdef per verificare se DEBUG è definito se si desidera inserire o meno del codice per le build di debug. Oppure si può anche impostare una variabile (non riesco a immaginare perché si vorrebbe questo):
#ifdef DEBUG
BOOL isBuiltDebug = YES;
#else
BOOL isBuiltDebug = NO;
#endif
EDIT: Bene, un altro modo è quello di definire un valore booleano in un preprocessore macro, vale a dire: "DEBUG_BUILD = 1 "per la configurazione di debug e" DEBUG_BUILD = 0 "per la configurazione di rilascio. Quindi è possibile utilizzare tale valore nel codice:
if (DEBUG_BUILD) {
....
}
Basta essere attenti a non utilizzare un nome di macro che potrebbe corrispondere a un nome che è già nel codice o in qualsiasi file .h che si potrebbe includere sia, perché il preprocessore lo sostituirà ed è un vero dolore trovare questi tipi di bug.
Il codice farà parte di un dist di terze parti e se possibile vorrebbe evitare #ifdef, ma può convivere con esso se non c'è altra soluzione. – lolsborn
Non conosco un altro modo se non usare una macro del preprocessore, ma puoi evitare il #ifdef, vedi la mia modifica sopra. – progrmr
Grazie per la risposta! –
Senza dover pensare a definire una macro preprocessore personalizzato, si può semplicemente scrivere un metodo personalizzato come questo:
+ (BOOL) isInDebugMode
{
#ifndef __OPTIMIZE__ // Debug Mode
return YES;
#else
return NO;
#endif
}
O semplicemente scrivere il codice inline all'interno di tali dichiarazioni:
#ifndef __OPTIMIZE__ // Debug Mode
// Your debug mode code
#else
// Your release mode code
#endif
L'impostazione del preprocessore __OPTIMIZE__
viene impostata automaticamente dal compilatore in base alle impostazioni del progetto, quindi non devi preoccuparti di ciò.
- 1. Rileva se qt sta eseguendo una build di debug in fase di esecuzione
- 2. Rileva versione Python in fase di esecuzione
- 3. Rileva lo spoofing UDID sull'iPhone in fase di esecuzione
- 4. verifica se un SKNode sta eseguendo una SKAction
- 5. Rileva se UIScrollView sta scorrendo
- 6. Rileva l'androide della mia app: versionCode in fase di esecuzione
- 7. Rileva se sta scorrendo una pagina Web su Android
- 8. Rileva se Celery è disponibile/in esecuzione
- 9. Rileva se un VideoVisualizzazione sta effettuando il buffering
- 10. scegliere una monade in fase di esecuzione
- 11. iPhone: come rilevare se iTunes sta giocando?
- 12. Rileva in fase di esecuzione da quale App Store del Paese è stata scaricata la mia app per iPhone?
- 13. Nuovo per Android - Disegnare una vista in fase di esecuzione
- 14. Come sapere se un server sta eseguendo Node.js?
- 15. Rileva se iPhone sta visualizzando l'ora in modalità 12 ore o 24 ore?
- 16. controllo se la visualizzazione viene caricato in fase di esecuzione
- 17. Rileva se il contenitore servlet in esecuzione è Eclipse Jetty
- 18. Come verificare se sono in fase di esecuzione o in fase di progettazione?
- 19. Esecuzione di una fase Maven specifica
- 20. iOS - rileva se l'app è in esecuzione da Xcode
- 21. Entity Framework sta eseguendo troppe query
- 22. Rimozione di una funzione in fase di esecuzione in PHP
- 23. Drools disabilita una regola in fase di esecuzione
- 24. Ridimensionamento dei controlli in fase di esecuzione
- 25. Rileva modifica della variabile in fase di esecuzione in C/C++
- 26. Controllo iPhone per una costante in fase di esecuzione nell'app universale
- 27. Modifica del valore di una macro in fase di esecuzione
- 28. Rileva applicazione in esecuzione su Kindle Fire
- 29. Rileva se MATLAB startup.m è in esecuzione su un worker
- 30. metodo call in fase di esecuzione
Perché vuoi farlo? – progrmr