键入时关闭Xcode未使用的变量警告

问题描述 投票:21回答:2

在打字的时候,我厌倦了Xcode多次使用现场“未使用的变量”警告。我一直在想我的语法错误,停止我正在做的事情,检查警告,只看到它是一个未使用的变量警告。

enter image description here

当然它没用,我只是输入它!

我不介意编译时未使用的变量警告,这些非常有用,但我讨厌实时警告,因为我正在键入代码。

有没有办法可以在任何地方完全关闭此警告,无论是应用程序范围还是整个项目?

swift xcode7 compiler-warnings
2个回答
15
投票

到目前为止,我们无法以#pragma clang diagnostic ...可用于obj-C的方式抑制特定警告。参见例如以下主题


通过从Xcode - > Preferences:Tab General禁用显示实时问题,可以全局禁用所有交互式警告。然而,这超过了禁用所有实时警告,也禁用了实时错误,所以我认为你不想诉诸于此。


[构建警告]您可以在项目范围内关闭自定义构建警告,如下所示:

  • 在导航器中选择项目,然后选择“选项卡构建设置”选项卡。查找Apple LLVM 7.0 - 警告 - 所有语言,并禁用未使用值和未使用变量的警告。

enter image description here


0
投票

在我的版本(Xcode 10.2.1)上,似乎禁用实时警告只会禁用警告,而不是其他人所说的所有错误。所以,我认为这个确切的答案很好地解决了原帖:

Xcode > Preferences > General > Issues: [x] Show live issues

取消选中“Show live issues”。键入新代码时不再需要警告。


-2
投票

@warn_unused_result是Xcode 10(swift 4.2)的默认行为。默认情况下,“未使用的值”和“未使用的变量”警告也会打开。关闭它们并不是一个好主意,这个answer说明了原因。对于您自己或被覆盖的函数,您可以在声明中使用@discardableResult指令来抑制这些警告,如下所示:

suppressing Unused Values warning with discardableResult directive

请注意,doSubmission()不会生成任何警告。

实际上,这在某些系统API中使用,例如:如果你写的话

navigationController?.popToRootViewController(animated: true)

代替

_ = navigationController?.popToRootViewController(animated: true)

忽略返回的结果,你不会得到任何警告。

使用_ = funcWithResultWeDoNotCareFor()是最好的做法恕我直言。

顺便说一句,这一切都适用于项目。在Playground中,无论如何都不会获得“未使用的值”和“未使用的变量”警告。

© www.soinside.com 2019 - 2024. All rights reserved.