如何手动弃用成员

问题描述

您可以使用可用标签,例如:

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

其中 * 是平台(iOS、iOSApplicationExtension、macOS、watchOS、tvOS、* for all 等)。

您还可以指定它所在的平台版本introduceddeprecatedobsoletedrenamed和 a message

@available(iOS, deprecated:6.0)
func myFunc() { 
    // calling this function is deprecated on iOS6+
}

Or

@available(iOS, deprecated: 6.0, obsoleted: 7.0, message: "Because !")
func myFunc() {
    // deprecated from iOS6, and obsoleted after iOS7, the message "Because !" is displayed in XCode warnings
}

如果您的项目针对多个平台,您可以使用多个标签,如下所示:

@available(tvOS, deprecated:9.0.1)
@available(iOS, deprecated:9.1)
@available(macOS, unavailable, message: "Unavailable on macOS")
func myFunc() {
    // ...
}

Swift 文档中的更多详细信息。

解决方法

与 Objective-C 不同,Swift 没有预处理器,那么还有办法手动弃用类的成员吗?

我正在寻找类似的东西:

-(id)method __deprecated;