Se volete che il vostro NSLog a lavorare solo quando il debug e non si vuole fare qualsiasi modifiche al codice l'approccio migliore è quello di fare questo sul vostro file PCH:
#ifndef DEBUG
#define NSLog(x...)
#endif
SPIEGAZIONE E RISOLUZIONE DEI PROBLEMI:
questo significa che se DEBUG non è definito sarà "override" tutte NSLogs a non fare nulla, questa stringa sostituire avviene prima di compilare in modo che nessun NSLog in tutto il codice escape, NSLog non verrà lasciato in produzione per errore, questo elimina l'errore umano di dimenticare di rimuovere NSLogs nelle app di produzione.
DEBUG viene normalmente definito in modalità debug per impostazione predefinita in tutti i progetti Xcode.si può scoprire se si è definito a:
Build Settings ->
Apple LLV #.# - Preprocessing ->
Preprocessor Macros -> Debug
se non è lì aggiungere
DEBUG=1
anche se non si dispone di un file PCH o non è stata cablata fino ecco quello che devi farlo (perché è stato automaticamente aggiunto in Xcode 5, ma non è più viene aggiunto in Xcode e 6 per impostazione predefinita sui nuovi modelli di progetto)
Why isn't ProjectName-Prefix.pch created automatically in Xcode 6?
Esattamente. Inoltre, il log di sistema sui dispositivi iOS è ridicolmente di breve durata, quindi nella vita reale è solo inutile. 'NSLog()' in iOS è solo uno strumento debug _local_. – Costique