想象一下我在Swift中的mark the following method deprecated:
@available(*, deprecated=1.0)
func myFunc() {
// ...
}
我treat warnings as errors in Swift设置OTHER_SWIFT_FLAGS="-warnings-as-errors"
。
如何将这些弃用通知显示为警告,同时仍将其余警告视为错误?
这个问题似乎是GCC had a pretty good solution:
-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
因此,如果这是Objective-C,我可以简单地使用-Werror -Wno-error=deprecated-declarations
并获得我想要的内容。
Swift的等价物是什么?
我尝试将-Wno-error=deprecated-declarations
添加到OTHER_SWIFT_FLAGS
,但似乎它不适用于Swift,所以它不起作用。
答案 0 :(得分:3)
这是不可能的。从Swift 4开始,Swift编译器没有开关来启用/禁用特定警告或提升错误的特定警告。
Swift核心开发人员表示他们不愿意在swift-evolution邮件列表上多次添加一连串的编译器标志。理由是他们希望保留Swift的单一“方言”,以便每个开发人员都使用相同的语言功能等。
这是否应该扩展到特定警告标志之类的东西当然值得商榷,但这是目前的官方立场。这些规则在未来可能会有所松动,但我绝不会赌它。