如何手动弃用成员
与Objective-C不同的是,Swift没有预处理器,那么是否仍然有办法手动弃用某个类的成员?
我正在寻找类似的东西:
-(id)method __deprecated;
您可以使用可用的标签,例如:
@available(*, deprecated) func myFunc() { // ... }
其中*是平台(iOS,iOSApplicationExtension,macOS,watchOS,tvOS,*等)。
您还可以指定从中introduced
, deprecated
, obsoleted
, renamed
和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文档的更多细节。
从Swift 3.0开始,版本号是可选的。 你现在可以简单地input:
@available(*, deprecated) func foo() { // ... }
或者如果你想要一个消息一起去:
@available(*, deprecated, message: "no longer available ...") func foo() { // ... }