2016-07-20 48 views
6

Ich habe eine Warnung, die ich in Xcode unterdrücken möchte, aber ich kann den Namen der Warnung nicht finden. Ich habe -fdiagnostics-show-category=name aktiviert und die Protokolle zeigen, dass es ein semantisches Problem ist. Mit Blick auf Clangs Quelle, I denke Ich habe eine test for this scenario gefunden, aber kann nicht scheinen, um den Namen davon aufzuspüren.So finden Sie eine Clang-Warnflagge in Xcode, die in Build-Logs nicht vorhanden ist

Derzeit sind die Build-Protokolle zeigen dies:

m:89:29: warning: assigning to 'id<AProtocol>' from incompatible type 'AViewController *' [Semantic Issue] 
self.tableView.delegate = self.aController; 

Die ID für die Warnung auch ist - aber egal, was ich versuche, kann ich nicht scheinen, diese weg zu machen gehen:

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-WNO-CLUE-WHAT-THE-WARNING-FLAG-IS" 
    self.tableView.delegate = self.aController; 
#pragma clang diagnostic pop 

Natürlich ist mir bewusst, immer die Warnung wird bevorzugt, und ich kann dies mit einem Protokoll Cast tun. Aber an diesem Punkt habe ich so sehr nach der Warnung gesucht, es fühlt sich einfach an wie unerledigte Angelegenheiten und ich würde gerne die Antwort wissen. Ich habe auch "freakingclangwarnings.com" durchsucht und es ist auch nicht dort, soweit ich das beurteilen kann.

+0

Anstatt die Warnung oder das Casting zu unterdrücken, sollten Sie AViewController explizit dazu auffordern, AProtocol zu implementieren, wodurch die Warnung verschwinden sollte. – fishinear

+0

Das ist aber nicht meine Frage;) –

Antwort

3

Suche Quellcode, würde ich denke, es ist warn_incompatible_qualified_id, definiert in DiagnosticSemaKinds.td, die möglicherweise einer dieser existing warnings that currently have no associated -W flag ist, weitere Informationen in der revision log aus, wenn es zugegeben.

+0

Bedeutet das, dass es keine Möglichkeit gibt, diese Warnung zu deaktivieren? –

+0

Ja @ NikKov - das ist richtig –