仅当当前设备的 iOS 版本低于此处指定的特定版本时,我才想运行一段代码。苹果给出的代码示例如下所示:
if (@available(iOS 10.0, *)) {
// iOS 10.0 and above
} else {
// below 10.0
}
但是,在某些情况下,仅当当前 iOS 版本低于特定版本时才希望运行代码。我假设以下代码将起作用:
if (!@available(iOS 10.0, *)) {
// below 10.0
}
但是,这似乎不起作用,并且我从 Xcode 收到以下警告:
@available does not guard availability here; use if (@available) instead
这是添加了我看到的诊断的 LLVM 提交。
该问题有两个可能的后备方案:
- 使用
if-else
变体而不向if
块中添加任何代码(不是很优雅)。 - 继续使用旧方法,例如
-[NSProcessInfo isOperatingSystemAtLeastVersion:]
.
还有另一种使用@available
我想念的方法吗?