Sen*_*ful 11 xcode gcc compiler-errors compiler-warnings swift
想象一下,我在Swift中标记了以下方法:
@available(*, deprecated=1.0)
func myFunc() {
// ...
}
Run Code Online (Sandbox Code Playgroud)
我通过设置将警告视为Swift中的错误OTHER_SWIFT_FLAGS="-warnings-as-errors".
如何将这些弃用通知显示为警告,同时仍将其余警告视为错误?
看起来GCC对这个问题有一个很好的解决方案:
-Werror // treat all warnings as errors
-Wno-error=<warning> // don't treat <warning> as error (e.g. -Wno-error=switch)
-Werror=<warning> // treat <warning> as error
Run Code Online (Sandbox Code Playgroud)
所以如果这是Objective-C,我可以简单地使用-Werror -Wno-error=deprecated-declarations并获得我想要的东西.
什么是Swift的等价物?
我尝试添加-Wno-error=deprecated-declarations到OTHER_SWIFT_FLAGS,但似乎它不适用于Swift,所以它不起作用.
这是不可能的。从 Swift 4 开始,Swift 编译器没有用于启用/禁用特定警告或将特定警告提升为错误的开关。
Swift 核心开发人员多次表示不愿意在 swift-evolution 邮件列表中添加一长串编译器标志。理由是他们希望保留 Swift 的单一“方言”,以便每个开发人员都可以使用相同的语言功能等。
这是否应该扩展到特定警告标志之类的东西当然是有争议的,但这就是当前的官方立场。未来这些规则绝对有可能会有所放松,但我不打赌。
编辑: 从 Swift 4.2 开始,Swift 添加了#warning语法。
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |