问题描述
您可以使用可用标签,例如:
@available(*, deprecated)
func myFunc() {
// ...
}
其中 * 是平台(iOS、iOSApplicationExtension、macOS、watchOS、tvOS、* for all 等)。
您还可以指定它所在的平台版本introduced
、deprecated
、obsoleted
、renamed
和 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;