Я хотел бы запустить фрагмент кода, только если версия iOS текущего устройства ниже определенной версии, как указано здесь. Примеры кода, приведенные Apple, выглядят следующим образом:
if (@available(iOS 10.0, *)) {
// iOS 10.0 and above
} else {
// below 10.0
}
Однако существуют сценарии, в которых вы хотите запустить код только в том случае, если текущая версия iOS находится ниже определенной версии. Я предположил, что следующий код будет работать:
if ([email protected](iOS 10.0, *)) {
// below 10.0
}
Однако кажется, что это не работает, и я получаю следующее предупреждение от Xcode:
@available does not guard availability here; use if (@available) instead
Здесь - это фиксация LLVM, которая добавила диагностику, которую я вижу.
В эту проблему можно выделить два возможных варианта:
- Используйте вариант
if-else
без добавления кода в блокif
(не очень элегантный). - Продолжайте использовать старые подходы, такие как
-[NSProcessInfo isOperatingSystemAtLeastVersion:]
.
Есть ли другой способ использования @available
, который мне не хватает?