在打字的时候,我厌倦了Xcode多次使用现场“未使用的变量”警告。我一直在想我的语法错误,停止我正在做的事情,检查警告,只看到它是一个未使用的变量警告。
当然它没用,我只是输入它!
我不介意编译时未使用的变量警告,这些非常有用,但我讨厌实时警告,因为我正在键入代码。
有没有办法可以在任何地方完全关闭此警告,无论是应用程序范围还是整个项目?
到目前为止,我们无法以#pragma clang diagnostic ...
可用于obj-C的方式抑制特定警告。参见例如以下主题
通过从Xcode - > Preferences:Tab General禁用显示实时问题,可以全局禁用所有交互式警告。然而,这超过了禁用所有实时警告,也禁用了实时错误,所以我认为你不想诉诸于此。
[构建警告]您可以在项目范围内关闭自定义构建警告,如下所示:
在我的版本(Xcode 10.2.1)上,似乎禁用实时警告只会禁用警告,而不是其他人所说的所有错误。所以,我认为这个确切的答案很好地解决了原帖:
Xcode > Preferences > General > Issues: [x] Show live issues
取消选中“Show live issues
”。键入新代码时不再需要警告。
@warn_unused_result
是Xcode 10(swift 4.2)的默认行为。默认情况下,“未使用的值”和“未使用的变量”警告也会打开。关闭它们并不是一个好主意,这个answer说明了原因。对于您自己或被覆盖的函数,您可以在声明中使用@discardableResult
指令来抑制这些警告,如下所示:
请注意,doSubmission()不会生成任何警告。
实际上,这在某些系统API中使用,例如:如果你写的话
navigationController?.popToRootViewController(animated: true)
代替
_ = navigationController?.popToRootViewController(animated: true)
忽略返回的结果,你不会得到任何警告。
使用_ = funcWithResultWeDoNotCareFor()
是最好的做法恕我直言。
顺便说一句,这一切都适用于项目。在Playground中,无论如何都不会获得“未使用的值”和“未使用的变量”警告。