2016-07-20 10 views
6

У меня есть предупреждение, которое я хочу подавить в Xcode, но я не могу найти имя предупреждения. Я включил -fdiagnostics-show-category=name, и журналы показывают, что это семантическая проблема. Глядя на источник Клэнга, я думаю Я нашел test for this scenario, но, похоже, не может отследить его имя.Как найти флаг предупреждения Clang в Xcode, который отсутствует в журналах построения

В настоящее время, журналы сборки показать это:

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

Идентификатор для предупреждения также - но независимо от того, что я стараюсь я не могу сделать это уйти:

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

Конечно, я знаю, что всегда исправление предупреждения предпочтительнее, и я могу сделать это с использованием протокола. Но на данный момент я так сильно усмотрел поиск предупреждения, это просто ощущение незавершенного дела, и я бы хотел узнать ответ. Я также искал «freakingclangwarnings.com», и он не существует там, насколько я могу судить.

+0

Вместо того чтобы подавлять предупреждение или кастинг, лучше явно объявить AViewController для реализации AProtocol, что должно заставить предупреждение уйти. – fishinear

+0

Это не мой вопрос, хотя:) –

ответ

3

Поиск исходного кода, я предполагаю, что это warn_incompatible_qualified_id, определенный в DiagnosticSemaKinds.td, что один из этих existing warnings that currently have no associated -W flag возможно, больше информации в revision log с момента, когда он был добавлен.

+0

Означает ли это, что нет способа отключить это предупреждение? –

+0

Yea @NikKov - это правильно –