2016-08-30 3 views
9

Stellen Sie sich vor mir mark the following method deprecated in Swift:Behandle * einige * Warnungen als Fehler in Swift?

@available(*, deprecated=1.0) 
func myFunc() { 
    // ... 
} 

Und ich treat warnings as errors in Swift durch OTHER_SWIFT_FLAGS="-warnings-as-errors" Einstellung.

Wie kann ich diese Verwarnungen als Warnungen anzeigen lassen, während die restlichen Warnungen weiterhin als Fehler behandelt werden?


Es scheint wie GCC had a pretty good solution für dieses Problem:

-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 

Also, wenn diese Objective-C war, habe ich einfach -Werror -Wno-error=deprecated-declarations verwenden könnte und genau das bekommen, was ich will.

Was ist das Äquivalent für Swift?


Ich versuchte -Wno-error=deprecated-declarations zum OTHER_SWIFT_FLAGS Zugabe, aber es scheint, als ob es nicht für Swift gemeint ist, so dass es nicht funktioniert.

Antwort

0

Dies ist nicht möglich. Ab Swift 4 verfügt der Swift-Compiler nicht über Schalter, die bestimmte Warnungen aktivieren oder deaktivieren oder bestimmte Warnungen auf Fehler hinweisen.

Die Swift-Core-Entwickler äußerten ihre Zurückhaltung, eine Reihe von Compiler-Flags auf der Mailing-Liste von swift-evolution zu veröffentlichen. Die Begründung ist, dass sie vermeiden wollen, einen einzigen "Dialekt" von Swift zu behalten, damit jeder Entwickler mit den gleichen Sprachfunktionen usw. arbeitet.

Ob sich das auf so etwas wie bestimmte Warnflags ausdehnen sollte ist natürlich umstritten, aber das ist das aktuelle offizielle Haltung. Es ist definitiv möglich, dass diese Regeln in der Zukunft etwas gelockert werden, aber ich würde nicht darauf wetten.

Verwandte Themen