与 Objective-C 不同,Swift 没有预处理器,那么还有办法手动弃用类的成员吗?
我正在寻找类似的东西:
-(id)method __deprecated;
您可以使用可用标签,例如:
@available(*, deprecated) func myFunc() { // ... }
其中 * 是平台(iOS、iOSApplicationExtension、macOS、watchOS、tvOS、* for all 等)。
您还可以指定它所在的平台版本introduced、deprecated、obsoleted、renamed和 a message:
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 文档中的更多详细信息。