我希望实现这样的目标:
@unavailable(iOS 11.0, *)
func oldWay() {
...
}
@available(iOS 11.0, *)
func newWay() {
...
}
我已经尝试过类似@available(iOS 11.0, unavailable, *)
之类的东西,但无法编译。
我的问题是我正在使用一种可选方法来遵守Objective-C协议。其中一些仅自iOS 11起可用,我的应用程序自iOS 10起可用,我不想为给定平台实现这两种方法。
例如,如果我这样做:
func oldWay() {
...
}
@available(iOS 11.0, *)
func newWay() {
...
}
这两种方法都在iOS 11以后的所有平台上实现。这不是我想要的。
所以,如果有人有主意...
我认为这可能会满足您的要求。另外,指定rename:
将使您更正所生成的编译器错误。
@available(iOS 11.0, unavailable, renamed: "newWay")
func oldWay() {}
您可以使用deprecated:
自变量(也可以使用message:
自变量,因为这似乎是这里发生的事情:
@available(iOS, deprecated: 11.0, message: "Please use 'newWay'")
func oldWay() {
}
@available(iOS 11.0, *)
func newWay() {
}
如果您尝试使用旧方法,则会产生警告。如果您想出错,则将deprecated
替换为obsoleted
。