2014-09-18 8 views
8

Come alcuni di voi potrebbero essere consapevoli quando l'esecuzione in modalità debug completamente veloce può essere terribilmente lenta. C'è un modo in cui posso stampare un messaggio in codice o sulla GUI per farmi sapere se in qualche modo ho dimenticato di compilarlo correttamente. Sto correndo in modalità mista, quindi se qualcuno può darmi codice Objc e Swift sarebbe fantastico.Come identificare se Swift è stato compilato con Ottimizzazione

Grazie!

+1

Confronta http://stackoverflow.com/questions/24003291/ifdef-replacement-in-swift-language. –

risposta

10

Non credo che si può rilevare questo in fase di esecuzione, ma è possibile utilizzare la macro DEBUG preprocessore (in Objective-C) che viene definito nella configurazione di debug per impostazione predefinita:

#ifdef DEBUG 
NSLog(@"I'm in debug mode!"); 
#endif 

Questo presuppone che non si compila senza ottimizzazioni nella configurazione di uscita :-)

Se si desidera controllare che nel Swift, è necessario definire un Build Configuration aggiungendo -D DEBUG a "Altre Bandiere Swift" per la configu debug razione solo nelle impostazioni di Build. Poi si può verificare la presenza di tale configurazione, se #if:

#if DEBUG 
println("I'm in debug mode!") 
#endif 
+0

Quindi, ora al runtime, per capire quale livello di ottimizzazione è stato utilizzato? – Jeef

+1

@jeef usa questa tecnica per impostare un flag, e quindi puoi controllare il flag durante il runtime –

+0

Se qualcuno si chiede perché questi flag non funzionano assicurati che Xcode li mostri nell'ordine @jou li ha specificati qui -D DEBUG. Se Xcode mostra DEBUG -D non funzionerà. – zumzum

0

È possibile utilizzare schemi di Xcode per aggiungere una bandiera come argomento o le variabili di ambiente - è possibile verificare la presenza utilizzando NSProcessInfo - sia -arguments o -environment .

In Xcode, passare a Prodotto> Schema> Modifica schema nella barra dei menu, selezionare Esegui e nella scheda Argomenti, aggiungere l'argomento o la variabile di ambiente.

Problemi correlati