是否可以在对象的Class级别上实现此目的?特别关注这个有一个包含WatchConnectivity的应用程序,但也支持iOS8
class Test {
if #available(iOS 9, *) {
let session: WCSession ......
}
}
答案 0 :(得分:5)
您可以使用计算的static
属性:
public class Example {
public static var answerToEverything: Int {
if #available(iOS 9, *) {
return 42
} else {
return 0
}
}
}
或者,您可以考虑使用@available
属性:
public class Example {
@available(iOS, introduced=1.0)
public static var answerToEverything: Int = 42
}
其中1.0
是您的图书馆(不是iOS)的版本。
如果您更关心确保在iOS 上使用而不太关心iOS版本,这将非常有用。
答案 1 :(得分:1)
您可以使用计算属性将其包装起来,例如UIMenu
:
@available(iOS 13.0, *)
var menu: UIMenu? { // use this as a getter for what you want
return _menu as? UIMenu
}
var _menu: Any? // use this reference as a setter for what you want