2009-06-17 10 views

Antwort

2

Es ist ziemlich üblich für Entwickler, den Instanzvariablen ihrer Objekte Namen mit m_ (kurz für "Mitglied") zu geben, und die Regel, die Sie sehen, zeigt, dass Ihr Code dieser Konvention nicht entspricht. Wenn Sie diese Konvention in Ihrem Code nicht befolgen möchten, deaktivieren Sie diese Regel einfach im Analysator.

+1

Die Konvention ist Teil von AT, nicht das Clang-Tool. In den Kommentaren der SO-Antwort, auf die ich Bezug genommen habe, bestätigt der AT-Entwickler, dass einige Leute es abschalten möchten, aber diese Funktion wird in der aktuellen Version ihres GUI-Tools nicht unterstützt. –

+0

Während Entwickler im Allgemeinen ein Präfix "m" oder "m_" verwenden können, habe ich in Objective-C-Code nicht viel gesehen, und es scheint etwas unnötig zu sein. Da die meisten Variablen Instanzvariablen sind, verwende ich Präfixe für Statik/Globale/Konstanten und vergewissere mich, dass lokale Variablen keine iavars darstellen. Xcode hat einige ziemlich anständige Werkzeuge, um herauszufinden, wo ein Symbol deklariert ist (Cmd doppelklicken Sie darauf) und wo es verwendet wird (klicken Sie darauf, Verwendungen sind unterstrichen). –

+0

Ich verwende die Konvention nicht selbst, also überprüfe sie nicht im Analysator. Das Google ObjC-Coding-Handbuch erfordert dies jedoch. Jeder zu seinem eigenen :-) –

3

AnalysisTool ist eine Front-End-GUI, verwendet aber auch einige benutzerdefinierte Regeln, die nicht Teil von Clang sind. Soweit ich weiß, erzwingt/empfiehlt Clang keine Benennungskonventionen für Instanzvariablen. Sie sehen also wahrscheinlich einen internen Codierungsstil (der von den AT-Entwicklern verwendet wird), den Sie ignorieren können. Weitere Informationen finden Sie unter this SO answer.

Die Clang Static Analyzer selbst ist jetzt als Binärdownload für Leopard verfügbar, während Sie es zuvor selbst erstellen mussten, was komplex und zeitraubend war. Es ist ziemlich einfach ohne GUI zu verwenden, und die Berichte sind insgesamt ziemlich nett.

+0

Ich verwende es normalerweise von der CL. Ich hatte tatsächlich Probleme aufgrund einer verknüpften statischen Bibliothek und fand, dass AnalysisTool in der Lage war, sie zu umgehen. Aber irgendeine Eingabe auf dem Präfix "m"? –

+0

Wie ich bereits erwähnt habe, ist dies eine in AnalysisTool fest programmierte Konvention. –