2013-05-05 6 views
23

Mi piace usare -Weverything per il compilatore per catturare tutti gli avvisi possibili, ma a volte ricevo avvertimenti che non voglio correggere. Come posso disabilitare manualmente quegli avvertimenti particolari mentre si verificano?Clang (in Xcode): inizia con -Wissything e disabilita manualmente avvisi particolari

+2

Nota che il tuo approccio non è davvero il modo migliore per fare le cose: http://programmers.stackexchange.com/questions/122608/clang-warning-flags-for-objective-c-development/124574#124574 –

risposta

26

È possibile disabilitare singoli avvisi utilizzando -Wno-XYZ, XYZ come il nome della funzione di avviso da disabilitare.

+3

Ok, ma sai come ottengo il corretto 'XYZ' dal fumetto giallo in Xcode? Per favore riporta "Xcode" alla domanda. Era una parte importante di questo :) – 7cows

+1

@ 7cows No, questa non è una domanda Xcode, vuoi impostare ** flag ** compilatore. Bene, c'è un manuale per 'clang' che elenca tutti gli switch e le opzioni, inclusi gli avvertimenti. Eccoti: [link] (http://clang.llvm.org/docs/UsersManual.html#individual-warning-groups) –

+1

@ 7cows Non inserisci 'xcode' nei tag, questo ** isn davvero 't ** una domanda Xcode. Inoltre, non dovresti inserire la risposta nella domanda: è per questo che abbiamo post separati per le risposte. –

1

Suppongo che tu sappia come aggiornare le impostazioni di generazione per abilitare/disabilitare i singoli avvisi e per disabilitare l'avviso nel codice. Ecco un esempio:

#ifdef TESTFLIGHT_USERTRACKING 

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wdeprecated-declarations" 
#pragma clang diagnostic ignored "-Wdeprecated-implementations" 

[TestFlight setDeviceIdentifier:[[UIDevice currentDevice] uniqueIdentifier]]; 

#pragma clang diagnostic pop 

#endif 
16

XCode

in Xcode 5 ho dovuto costruire, quindi fare clic destro su un tema e selezionare "Mostra nel registro" quindi impostare la scheda riquadro centrale a "Tutto" troppo ottenere i problemi visualizzati nel registro.

Quindi, facendo clic sull'icona "Hamburger" sulla destra e scorrendo verso il basso, ho finalmente ottenuto una descrizione esatta dell'avviso.

/.../SettingsViewController.m:91:58: warning: creating selector for nonexistent method 'setSegueIdentifier:' [-Wselector] 
    [segue.destinationViewController performSelector:@selector(setSegueIdentifier:) 

Quindi nel mio caso, il seguente è il lavoro.

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wselector" 
... 
#pragma clang diagnostic pop 
+2

Ho cercato come trovare il flag specifico per l'avviso del compilatore per un po 'ora! Grazie per questo - molto utile! – Barjavel

3

ho appena ha urtato un sito che elenca tutte le avvertenze clang e le bandiere che li disattivano (utilizzando #pragma clang diagnostic ignored "-Wxyz"):

http://goo.gl/hwwIUa (quando si visita lo capirai perché ho accorciato i URL).