Ich verstehe genau, warum nicht verwendete Variablenwarnungen auftreten. Ich möchte sie im Allgemeinen nicht unterdrücken, weil sie in den meisten Fällen unglaublich nützlich sind. Beachten Sie jedoch den folgenden (erfundenen) Code.
NSError *error = nil;
BOOL saved = [moc save:&error];
NSAssert1(saved, @"Dude!!1! %@!!!", error);
Xcode meldet, dass dies saved
eine nicht verwendete Variable ist, obwohl dies natürlich nicht der Fall ist. Ich vermute, das liegt daran, dass NSAssert1
es sich um ein Makro handelt. Das NS_BLOCK_ASSERTIONS
Makro ist nicht definiert, daher sind Objective C-Zusicherungen definitiv aktiviert.
Es tut zwar nichts weh, aber ich finde es unordentlich und nervig, und ich möchte es unterdrücken, bin mir aber nicht sicher, wie ich das machen soll. Wenn Sie die Variable sich selbst zuweisen, wird die Compiler-Warnung entfernt, aber ich würde es lieber "richtig" machen, wenn so etwas existiert.
quelle
'saved' was marked as unused but was used
In Xcode können Sie die Warnungen für "Nicht verwendete Variablen" festlegen. Gehen Sie zu "Build Settings" für das Ziel und filtern Sie mit dem Wort "unbenutzt".
Hier ist ein Screenshot:
Ich schlage vor, Sie ändern es nur für Debug. Auf diese Weise verpassen Sie nichts in Ihrer Release-Version.
quelle
Versuchen Sie es so. Es funktioniert für mich. Es wird auch für Sie funktionieren.
quelle
'saved' was marked as unused but was used
Die einzige einfache und tragbare Möglichkeit, Variablen als verwendet zu markieren, besteht darin, sie zu verwenden.
Möglicherweise sind Sie jedoch mit bereits beschriebenen compilerspezifischen Erweiterungen zufrieden.
quelle
QUELLE
quelle
versuchen Sie es mit: __unused attribute. Funktioniert in Xcode 5
quelle
Sie können die Warnung "No" LLVM Compliler 2.0 auf "Release" setzen.
quelle
So machen Sie es in C und damit auch in Objective-C.
Auch wenn Sie keine Warnungen aktiviert haben, ist es immer eine gute Idee, den Rückgabewert als explizit ignoriert zu markieren. Es zeigt auch anderen Entwicklern, dass Sie den Rückgabewert nicht nur vergessen haben - Sie haben sich tatsächlich ausdrücklich dafür entschieden, ihn zu ignorieren.
BEARBEITEN: Compiler ignorieren Casts zu
void
, daher sollte dies die Leistung nicht beeinträchtigen - es ist nur eine schöne, saubere menschliche Anmerkung.quelle
(void)
ist der klarste Weg, danke!Lassen Sie es zwei Zeilen aufnehmen. Trennen Sie die Deklaration und den Standardwert
quelle