gpt4 book ai didi

ios - 使用@available 有条件地创建一个类

转载 作者:搜寻专家 更新时间:2023-10-31 22:21:48 24 4
gpt4 key购买 nike

我有一个用例,创建一个类的两个实现非常有用:一个用于 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
}

但是我在 @available(iOS 8.0, unavailable) 上收到了一个Expected version number 错误。 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
}

关于ios - 使用@available 有条件地创建一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33394438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com