我有一个用例,其中创建一个类的两个实现非常有用:一个用于 iOS 7 及更低版本,另一个用于 8+。这似乎@available是我正在寻找的工具,但我不知道如何使它工作。
从文档看来,这应该是可能的:
@available(iOS 8.0, unavailable)
class MyCompatabilityClass : NSObject {
//iOS 7 implementation
}
@available(iOS 8.0, *)
class MyCompatabilityClass : ClassOnlyAvailableInIOS8 {
//iOS 8 implementation
}
Run Code Online (Sandbox Code Playgroud)
但是我Expected version number在@available(iOS 8.0, unavailable). iOS 版本高于指定版本的条件类工作正常,但如何指定仅在特定版本号以下编译的类?
您不能取消声明类的存在,但可以弃用它。
此外,您不能两次声明同一个类,因此您的新类必须具有不同的名称。
因此:
@available(iOS, introduced=7.0, deprecated=8.0, message="Use MyCompatibilityClass2, please!")
class MyCompatabilityClass : NSObject {
//iOS 7 implementation
}
@available(iOS 8.0, *)
class MyCompatabilityClass2 : NSObject { // or whatever the superclass is
//iOS 8 implementation
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |