Turn off Xcode's unused variable warnings while typing

和自甴很熟 提交于 2019-11-29 05:30:26
dfri

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!