I'm sick to death of Xcode's prolific use of live "unused variable" warnings while I am typing. I keep thinking I have an error in my syntax, stop what I'm doing, check the warning, only to see it's an unused variable warning.
Of course it's unused, I just typed it!
I don't mind the compile-time unused variable warnings, those are very useful, but I hate the live warnings as I'm typing code.
Is there any way I can turn off this warning completely everywhere, either app-wide or for an entire project?
It seems as of currently, we cannot suppress specific warnings in the way #pragma clang diagnostic ...
could be used for obj-C. See e.g. the following thread
There is possible to disable all interactive warnings globally, by disabling Show live issues, from Xcode -> Preferences: Tab General. This, however, in excess of disabling all live warnings, also disable live errors, so something I presume you wouldn't want to resort to.
[Build warnings] You can turn off custom build warnings project-wide as follows:
- Select your project in the navigator, and choose tab Build Settings. Find Apple LLVM 7.0 - Warnings - All Languages, and disable the warnings for Unused Values and Unused Variables.
On my version (Xcode 10.2.1), it seems as if disabling live warnings only disables warnings, not all errors as others have said. So, I would think this exact answer addresses the original post quite well:
Xcode > Preferences > General > Issues: [x] Show live issues
Uncheck "Show live issues
". No more constant warnings as you type new code.
@warn_unused_result
is a default behavior as of Xcode 10 (swift 4.2).
'Unused Values' and 'Unused Variables' warnings are also on by default.
It is not a very good idea to turn them off and this answer shows why.
For your own or overridden funcs you can use @discardableResult
directive in declaration to suppress these warnings like this:
Note that doSubmission() does not generate any warnings.
In fact this is used in some system API, for example: if you write
navigationController?.popToRootViewController(animated: true)
instead of
_ = navigationController?.popToRootViewController(animated: true)
you'll get no warning for ignoring the result returned.
Using _ = funcWithResultWeDoNotCareFor()
is the best practice IMHO.
BTW, that all works for project. In Playground you will not get 'Unused Values' and 'Unused Variables' warnings no matter what.
来源:https://stackoverflow.com/questions/34931882/turn-off-xcodes-unused-variable-warnings-while-typing