2012-01-31 12 views
18

per la mia app Mi piacerebbe avere una vista di debug che voglio avere solo in debug-builds e non nelle build di release . Non voglio cambiare il mio codice però. Ecco perché mi chiedo se posso controllare alcuni flag del compilatore se si tratta di una versione di rilascio ed escludere alcuni codici che voglio solo per avere per le build di debug.iOS: frammenti di codice facoltativi per build di debug

risposta

30

Nei tuoi progetti costruire impostazioni, cercare il preprocessore definisce sezione, lì si può definire una variabile nel solo la tua build di debug, come ad esempio DEBUG=1, e quindi utilizzare questo nel codice:

#if DEBUG 
    NSLog(@"This will only print in debug!"); 
#endif 

Proprio assicurati che nella tua configurazione di rilascio, la stessa definizione sia impostata su 0 nella stessa posizione nelle impostazioni di costruzione

+0

errore di battitura lì: usare #ifdef #ifdef – Tomen

+1

è un'altra opzione, ma io preferisco usare #if invece –

+2

Come ho detto nel il mio commento prima, preferisco usare '# if 'piuttosto che' # ifdef'. Spetta interamente al programmatore usare e ognuno ha i suoi vantaggi e svantaggi. La mia preferenza è usare il metodo in cui ogni flag è sempre definito, ma come uno 0 o un 1 per indicare lo stato di quel flag, piuttosto che cercare di capire se quel flag è definito nel progetto –

26

Verifica le impostazioni di costruzione dei progetti per il debug per garantire che venga impostato DEBUG - Apple ti dà questo gratuitamente - fai questo selezionando il progetto e facendo clic sulla scheda delle impostazioni di compilazione. Cerca 'DEBUG' e cerca di vedere se DEBUG è stato impostato.

Build Settings tab of my project settings

poi condizionale codice per DEBUG nel file di origine

#ifdef DEBUG 

// Something to log your data here or even add a whole subview to see it on the device 

#else 

// 

#endif 
+1

ma cosa succede se si invia l'app a Apple e si dimentica di impostare DEBUG = 0 – meda

Problemi correlati