Swift: @available up to specific iOS version but not higher
Swift: @available up to specific iOS version but not higher
问题:
我想在 iOS 14 上的 SwiftUI 中使用 accessibilityIdentifier()
,但一些代码支持 iOS 13+。
我可以继续使用与 iOS 14+ 版本相同的 API,它在 iOS 13 上什么都不做吗?
例如:
/// How to make this available on pre-iOS 14 only?
extension View {
func accessibilityIdentifier(_ identifier: String) -> some View {
if #available(iOS 14.0, macOS 11.0, *) {
.accessibilityIdentifier(identifier)
} else {
self
}
}
}
一种可能的方法是创建自己的包装器,例如(使用 Xcode 13.2 测试)
extension View {
@ViewBuilder
func accessibility(id identifier: String) -> some View {
if #available(iOS 14.0, macOS 11.0, *) {
self.accessibilityIdentifier(identifier)
} else {
self.accessibility(identifier: identifier)
}
}
}
问题:
我想在 iOS 14 上的 SwiftUI 中使用 accessibilityIdentifier()
,但一些代码支持 iOS 13+。
我可以继续使用与 iOS 14+ 版本相同的 API,它在 iOS 13 上什么都不做吗?
例如:
/// How to make this available on pre-iOS 14 only?
extension View {
func accessibilityIdentifier(_ identifier: String) -> some View {
if #available(iOS 14.0, macOS 11.0, *) {
.accessibilityIdentifier(identifier)
} else {
self
}
}
}
一种可能的方法是创建自己的包装器,例如(使用 Xcode 13.2 测试)
extension View {
@ViewBuilder
func accessibility(id identifier: String) -> some View {
if #available(iOS 14.0, macOS 11.0, *) {
self.accessibilityIdentifier(identifier)
} else {
self.accessibility(identifier: identifier)
}
}
}