如何手动弃用成员

与Objective-C不同的是,Swift没有预处理器,那么是否仍然有办法手动弃用某个类的成员?

我正在寻找类似的东西:

-(id)method __deprecated; 

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

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

其中*是平台(iOS,iOSApplicationExtension,macOS,watchOS,tvOS,*等)。

您还可以指定从中introduceddeprecatedobsoletedrenamedmessage的平台版本:

 @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文档的更多细节。

Swift 3.0开始,版本号是可选的。 你现在可以简单地input:

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

或者如果你想要一个消息一起去:

 @available(*, deprecated, message: "no longer available ...") func foo() { // ... }